首页 > 解决方案 > 在命名空间实例化 flask_restx 上添加 doc 装饰器

问题描述

我正在尝试将 OpenAPI/Swagger 文档添加到 flask_restx 命名空间类。

添加文档的文档化方法是通过在 Resource 类上添加 doc 装饰器来完成的:@ns.doc(description="my documentation").

在 Namespace 类中有一个 decorators 参数,它接受一个装饰器列表并将它们应用于每个资源(然后在 Api 类中调用它们)。

我不知道如何将@ns.doc装饰器列表添加到命名空间

from flask_restx import Namespace, Resource

ns = Namespace(name = "namespace name")

ns.decorators = [
  simple_decorator_works,
  ns_doc_decorator(description="My default documentation on each resource")
]

@ns.route("/")
class MyResource(Resource):
    def get(self):
      return "awesome"

ns_doc_decorator应该可以接收一些默认参数

标签: python-3.xflask-restx

解决方案


需要一个基础资源类,并且装饰器放在该基础资源类上。


@ns.doc(description="My default documentation on each resource" etc)
class BaseResource(Resource): 
    ...
       
resource = type("resourceName", (BaseResource,), {'get': get_method, 'post': post_method etc})

ns.add_resource(resource)


推荐阅读