Почему не работает документация drf-yasg openapi? - PullRequest
0 голосов
/ 16 января 2020

Почему не работает документация drf-yasg. Я вижу только настройки по умолчанию.

api_patterns = [
    url(r'^api/v1/users/', include('apps.users.urls')),
]

schema_view = get_schema_view(
    openapi.Info("PlasticJam", 'v1'),
    patterns=api_patterns,
    public=True,
)

urlpatterns += [
    url(r'^swagger(?P<format>\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'),
    url(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
    url(r'^redoc/$', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
]

просмотров

@method_decorator(swagger_auto_schema(
    manual_parameters=[openapi.Parameter(
        name='users_count', in_=openapi.IN_QUERY, type='int', description='Count of users'
    )], 
    responses={'200': 'ok'}), name='list'
)
class UserListApiView(ListAPIView):
    """
    list:
    Users detail statistic

    Get dates range for statistic
    """
    queryset = User.objects.all()
    serializer_class = UserListSerializer

1 Ответ

1 голос
/ 26 января 2020

в классе UserListApiView, вы должны переопределить get и поместить декоратор поверх него.

@method_decorator(swagger_auto_schema(manual_parameters=[openapi.Parameter( name='users_count', in_=openapi.IN_QUERY, type='int', description='Count of users')],responses={'200': 'ok'}), name='list')

def get(self, request, *args, **kwargs):
    return super().get(request, *args, **kwargs)
...