#django #django-rest-framework #openapi #drf-yasg
#django #django-rest-framework #openapi #drf-yasg
Вопрос:
Как я могу добавить примеры ответов — (документ openapi) в мой документ swagger, используя пакет drf-yasg?
Ответ №1:
Используйте drf_yasg.openapi.Response
—(drf-yasg doc) с помощью @swagger_auto_schema(...)
—(drf-yasg doc) декоратора как
from drf_yasg.utils import swagger_auto_schema
from drf_yasg import openapi
from rest_framework.response import Response
from rest_framework.views import APIView
response_schema_dict = {
"200": openapi.Response(
description="custom 200 description",
examples={
"application/json": {
"200_key1": "200_value_1",
"200_key2": "200_value_2",
}
}
),
"205": openapi.Response(
description="custom 205 description",
examples={
"application/json": {
"205_key1": "205_value_1",
"205_key2": "205_value_2",
}
}
),
}
class MyTestAPIView(APIView):
@swagger_auto_schema(responses=response_schema_dict)
def post(self, request, *args, **kwargs):
return Response({"foo": "bar"})
Результат отображения схемы
Обновить
он продолжает загружаться и ничего не показывает
Возможно, вам потребуется нажать на текст «Примерное значение», если вы ищете в документе Swagger
Комментарии:
1. Итак, я должен написать пользовательский ответ для каждого API? У меня 22 API. итак, для всех из них?
2. Да, если только какой-либо из них не возвращает тот же ответ.
3. Сэр, не могли бы вы рассказать, как я могу добавить в него параметр post? Я не могу отправить параметр post
4. Это «еще один вопрос» , пожалуйста, задайте новый вопрос относительно новой проблемы. Кстати, пожалуйста, примите и поддержите ответ, если вы нашли этот ответ полезным.
5. Я ожидал нового вопроса со ссылочной ссылкой @DivyaKonda
Ответ №2:
В ответ на ответ @JPG для этого есть быстрое решение. Перейдите в настройки и добавьте это.
SWAGGER_SETTINGS = {
"DEFAULT_MODEL_RENDERING": "example"
}
Сначала будет показан пример.