Django Rest Swagger 2.2.0 Api在TokenAuthentication上没有显示

时间:2018-05-31 16:44:13

标签: django django-rest-framework swagger swagger-2.0

目前,我正在以下列方式使用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-schema在swagger文档中单独呈现每个视图。需要注意的是,由于此视图强制执行身份验证,因此只有在我授权用户(按令牌授权,按照swagger设置安全定义)之后,我才能查看我所有的IsAuthenticated视图。此外,如果单个视图函数有多个方法(get和post),则两者的模式生成是相同的(如果我这样做的话)。 我这里有两个问题。

  • 我想知道使用TokenAuthentication向前推进APIView的正确方法是什么(我没有得到任何有用的文档,不得不为论坛找到一个有效的解决方案)。
  • DjangoRestSwagger 2.2.0的授权过程不适用于这些设置。因此我不能使用模式编码,这对发布原始json数据有很大帮助。

如果有人可以帮助解决这些问题,或者如果有人发现我的设置和设置有帮助,请发表评论,以便我们讨论我们的选项:)

0 个答案:

没有答案