drf-yasg: Как изменить идентификатор операции?

#django #django-rest-framework #swagger-2.0 #drf-yasg #redoc

Вопрос:

введите описание изображения здесь

Как изменить имя запроса, которое автоматически отображается в redoc-ui при использовании drf-yasg.

Например: На изображении вы можете видеть, что запрос называется fid_data-entities_update, он берет это из URL-адреса.

Как мне переопределить/переименовать его?

Ответ №1:

Вы можете использовать @swagger_auto_schema(...) декоратор для переопределения operationId спецификации в качестве operation_id параметра using

 from rest_framework import generics
from rest_framework.response import Response
from drf_yasg.utils import swagger_auto_schema


class OperationIdOverrideAPI(generics.ListAPIView):

    @swagger_auto_schema(operation_id="Your awesome name")
    def get(self, request, *args, **kwargs):
        return Response({"message": "ok"}) 

Комментарии:

1. Я попытался добавить @swagger_auto_schema(operation_id=»Обновить имя сущности данных») поверх обновления def(self, запрос, *args, **kwargs) Я все еще не вижу изменений. Есть ли что-нибудь еще, что я должен сделать после добавления этого заявления?

2. вместо update() метода используйте либо put() или patch() метод

3. Спасибо! Это сработало. Есть ли какой-либо способ прикрепить его к методу обновления? Потому что мы используем create, update, partial_update, list и destroy для наших API. Извините, что усложняю ситуацию. Но большое вам спасибо за ответ