Добавить описание чванства в комментариях
Могу ли я настроить описание сваггера с помощью набора комментариев? Я использую drf-yasg.
Мой код:
class MetricViewSet(viewsets.ReadOnlyModelViewSet):
"""
retrieve:
Получить из справочника данные записи о метрике по *uuid*
list:
Получить из справочника коллекцию записей о метриках
"""
lookup_field = 'uuid'
serializer_class = MetricSerializer
queryset = Metric.objects.all()
permission_classes = (ApiPermission,)
мой сериализатор
class MetricSerializer(serializers.ModelSerializer):
"""
Metric serializer.
"""
uuid = serializers.UUIDField(label='Global UUID', read_only=True)
class Meta: # pylint: disable=too-few-public-methods
"""
Настройки сериализатора
"""
model = Metric
fields = ('uuid', 'creation_date', 'modify_date',
'name', 'description', 'enabled', 'comment')
Я хочу добавить описание здесь:
Как мне это сделать?
1 ответ
Следующее позволяет достичь части того, что вы просили. Это изменение описаний методов, параметров и ответов ViewSet с использованием swagger_auto_schema в сочетании с method_decorator Джанго.
Проверьте обе ссылки для получения дополнительной информации.
from rest_framework import viewsets
from drf_yasg import openapi
from drf_yasg.utils import swagger_auto_schema
@method_decorator(name='retrieve', decorator=swagger_auto_schema(
operation_description="Method description",
operation_id="Method ID",
operation_summary="Method summary",
manual_parameters=[
openapi.Parameter('serial', in_=openapi.IN_PATH, type=openapi.TYPE_STRING, description='Parameter description')
],
responses={'200': 'Response description'}
))
class MetricViewSet(viewsets.ReadOnlyModelViewSet):
"""
retrieve:
Получить из справочника данные записи о метрике по *uuid*
list:
Получить из справочника коллекцию записей о метриках
"""
lookup_field = 'uuid'
serializer_class = MetricSerializer
queryset = Metric.objects.all()
permission_classes = (ApiPermission,)
Обновить
Я нашел ошибку, где operation_summary
а также deprecated
варианты переданы swagger_auto_schema
на самом деле игнорируются, поэтому я представил этот PR, чтобы исправить это.