如何使用“drf-spectaulous”记录 ViewSet 的各个操作?

fin*_*ngu 4 django django-rest-framework openapi redoc drf-spectacular

使用 DRF 记录 API 的内置方式,我能够编写如下所示的文档字符串,并且每个操作都由其相应的行记录:

"""
list:    The list action returns all available objects.
retrieve:The retrieve action returns a single object selected by `id`.
create:  The create action expects the fields `name`, creates a new object and returns it.
"""
Run Code Online (Sandbox Code Playgroud)

我正在切换到该库drf-spectacular,它可以轻松生成符合 OpenAPI 的方案。然而,现在为每个操作呈现相同的文档字符串,这使得我的文档非常长且冗余。

有没有办法只为每个操作呈现文档字符串的相关部分?

fin*_*ngu 9

我刚刚发现该库通过其装饰器提供了非常深入的文档功能。在不重写任何 ViewSet 方法的情况下,上述文档字符串可以写为:

@extend_schema_view(
    list=extend_schema(
        description="The list action returns all available actions."
    ),
    create=extend_schema(
        description="The create action expects the fields `name`, creates a new object and returns it."
    ),
    retrieve=extend_schema(
        description="The retrieve action returns a single object selected by `id`."
    )
)
class MyViewSet(viewsets.ViewSet):
    pass
Run Code Online (Sandbox Code Playgroud)