Swagger
Для того чтобы создать Swagger документацию, воспользуемся библиотекой drf-spectacular
.
Мы уже настроили эту библиотеку ранее здесь, а также указали нужные маршруты здесь. Этого достаточно, чтобы документация заработала и показывала информацию о наших эндопоинтах.
Но, к сожалению, отображаемся информация не всегда соответствует реальности, поэтому нам нужно расширить некоторые схемы
с помощью декоратора @extend_schema
на методах наших представлений и с помощью Docstring там, где повесить декоратор
не так просто.
Декоратор принимает несколько аргументов:
summary
- то, что будет отображаться рядом с URL эндпоинта;description
- то, что будет написано в описании эндпоинта. Вместо этого аргумента можно использовать Docstring;parameters
- схемы для входных данных. Указываются списком объектов классаOpenApiParameter
с названием параметра и его типом;responses
- словарь, где ключ - статус ответа, а значение - сериализатор. Можно как использовать готовые сериализаторы, так и написать сериализатор на месте с помощьюinline_serializer
.
Код для декораторов уже был представлен здесь, дублировать информацию не буду.
Полученная документация: