Django Rest Swagger 2.2.0 API на TokenAuthentication не отображается - PullRequest
0 голосов
/ 31 мая 2018

В настоящее время я использую DRF 3.7.7 и Django-rest-swagger 2.1.2, следующим образом.

settings.py

SWAGGER_SETTINGS = {
    'SECURITY_DEFINITIONS': {
        'api_key': {
            'type': 'apiKey',
            'in': 'header',
            'name': 'Authorization'
        }
    },
    # 'LOGIN_URL': getattr(settings, 'LOGIN_URL', None),
    # 'LOGOUT_URL': getattr(settings, 'LOGOUT_URL', None),
    'DOC_EXPANSION': None,
    'APIS_SORTER': None,
    'OPERATIONS_SORTER': None,
    'JSON_EDITOR': False,
    'SHOW_REQUEST_HEADERS': False,
    'SUPPORTED_SUBMIT_METHODS': [
        'get',
        'post',
        'put',
        'delete',
        'patch'
    ],
    'VALIDATOR_URL': '',
}

views.py

from rest_framework.schemas import AutoSchema

class RandomClass(APIView):
    authentication_classes = (TokenAuthentication, )
    permission_classes = (IsAuthenticated, )
    schema = AutoSchema(
        manual_fields=[
            coreapi.Field(
                "page_id", 
                required=True, 
                location="query", 
                type="string", 
                description="Facebook Page ID"
           )
    ]
)

Это позволяет мне в некоторой степени использовать drf-схему для рендеринга каждого вида по отдельности в документах swagger.Предостережение заключается в том, что, поскольку в этом представлении применяется Аутентификация, только после того, как я авторизую пользователя (авторизация по токену, согласно определениям безопасности параметров чванства), я могу просматривать все свои представления IsAuthenticated.Кроме того, если одна функция представления имеет несколько методов (get и post), генерация схемы для обоих одинакова (если я делаю это таким образом. У меня здесь две проблемы.

  • Я хочу знать, чтобыло бы правильным способом продвинуться вперед для APIView с использованием TokenAuthentication (я не получил никаких полезных документов и должен был почистить форумы для рабочего решения).
  • Процедура авторизации для DjangoRestSwagger 2.2.0 не работает сэти настройки. Поэтому я не могу использовать кодирование схемы, которое очень помогло бы при публикации необработанных данных JSON.

Если кто-то может помочь с этими проблемами или если кто-то посчитает мои настройки и настройки полезными, пожалуйста,оставьте комментарий, чтобы мы могли обсудить наши варианты:)

...