Swagger/drf_yasg: для объекта Parameter требуется либо схема, либо тип (не оба)
У меня следующий путь:
path('path/<int:object_id>',
function,
name='function'),
В таком виде drf_yasg генерирует документацию для object_id
, как если бы она была строкой:
Поэтому я решил вручную ввести информацию в декоратор swagger_auto_schema
:
@swagger_auto_schema(
method='PATCH',
manual_parameters=[
openapi.Parameter('object_id', openapi.IN_PATH, required=True, description='Object ID'),
# query parameters
],
# operation_description, responses, etc
)
@api_view(['PATCH'])
@permission_classes([IsAuthenticated])
def function(request, object_id)
Однако, сделав это, drf_yasg выдает ошибку either schema or type are required for Parameter object (not both)!
, и я не могу исправить это, пока не удалю параметр пути object_id
из декоратора
В любом случае, я заинтересован в том, чтобы иметь возможность явно указывать параметр пути в декораторе, а не позволять drf_yasg делать это самостоятельно
Как я могу это исправить?
вы должны указать атрибут схемы с нужным типом данных для параметра object_id.
@swagger_auto_schema(
method='PATCH',
manual_parameters=[
openapi.Parameter('object_id', openapi.IN_PATH, schema=openapi.Schema(type=openapi.TYPE_INTEGER), description='Object ID'),
],)