Как документировать отдельные действия набора ViewSet с помощью `drf-spectacular`?

Используя встроенный в DRF способ документирования API, я смог написать docstring, подобный следующему, и каждое действие было документировано соответствующей строкой:

"""
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.
"""

Я сейчас перехожу на библиотеку drf-spectacular, которая позволяет легко генерировать схемы, соответствующие OpenAPI. Однако теперь для каждого действия выводится одна и та же doc-строка, что делает мою документацию очень длинной и избыточной.

Есть ли способ, чтобы для каждого действия отображалась только соответствующая часть строки документа?

Я только что обнаружил, что библиотека предоставляет очень глубокую функциональность документирования через свои декораторы. Не переопределяя ни один из методов 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
Вернуться на верх