Django REST Swagger скрывает ModelViewSet с разрешением_классов = [IsAuthenticated] - PullRequest
0 голосов
/ 10 октября 2018

Я использовал Django REST Swagger в моем проекте Django.Он может показать все URL с представлениями, которые не имеют permission_classes = [IsAuthenticated].Хотя представление с permission_classes = [IsAuthenticated] не отображается в списке API.

Вот пример:

class EquipmentCategoryViewSet(ResponseMixin, viewsets.ModelViewSet):
    queryset = EquipmentCategory.objects.all()
    serializer_class = EquipmentCategorySerializer
    permission_classes = [IsAuthenticated]

если я удаляю permission_classes = [IsAuthenticated], оно отображается в списке чванства-api.Я понизил Swagger до 2.1.2 и нажал на авторизованный и передал токен.

Странно то, что у меня есть префикс ' Token ' в моем значении.Когда я вхожу с Token<tokenvalue>, вход в систему не удается.Но когда я передаю <tokenvalue>, он проходит аутентификацию, а представления с isAuthenticated не отображаются.

Пожалуйста, предложите, что нужно сделать, чтобы показать представления с добавлением isAuthenticated .

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

вы можете просто переопределить схему

from rest_framework.schemas import get_schema_view

from rest_framework_swagger import renderers


schema_view = get_schema_view(title="Fbs Api Docs", public=True, renderer_classes=[renderers.OpenAPIRenderer, renderers.SwaggerUIRenderer])

вы передадите public = True, это позволит всем API перечислить, в urls.py включить ниже

path('docs/', schema_view),
0 голосов
/ 10 октября 2018

В правом верхнем углу API документа есть опция авторизации или входа в систему. Предоставьте действительный токен или логин.Это будет список других конечных точек.

Использовать чванство 2.1.2.

Последняя версия django swagger 2.2 имеет некоторые проблемы с авторизацией.См .: https://github.com/marcgibbons/django-rest-swagger/issues/762

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...