如何使用Django Rest Swagger记录API请求

536 阅读1分钟

在开发一个应用程序时,我们将编写我们所需的API。为了记录这些API,我们使用Django Rest Swagger。

Django Rest Swagger用于为你的应用程序中使用的所有API提供文档,并对每个API单独进行简要描述。

它是开源的,所以你可以为这个项目做出贡献。

如果你的API向用户提供了描述,那么UI开发者就可以理解和测试你的API并相应地使用它。

首先,我们需要安装swagger。

pip install django-rest-swagger

将 "rest_framework_swagger "添加到Django设置的INSTALLED_APPS中。

INSTALLED_APPS = (

    ...

    'rest_framework_swagger',

)

将rest_framework_swagger的URLs包含在你选择的路径中

patterns = ('',

    ...

    url(r'^docs/$', schema_view, name="schema_view"),

)

在你的API视图中

from rest_framework.decorators import api_view, permission_classes, renderer_classes

from rest_framework.permissions import AllowAny

from rest_framework_swagger.renderers import OpenAPIRenderer, SwaggerUIRenderer

@api_view()

@permission_classes((AllowAny, ))

@renderer_classes([OpenAPIRenderer, SwaggerUIRenderer])

def schema_view(request):

    generator = schemas.SchemaGenerator(title='Rest Swagger')

    return Response(generator.get_schema(request=request))

如果你没有授权,本文列出了所有不需要任何权限的API,以获得授权。

如果你想在你的应用程序中使用Rest Swagger来授权用户,在你的settings.py文件中包含以下设置。这样,当用户点击Swagger文档的URL时,你将在标题中提供一个授权按钮,当你点击它时,你将被提示输入Api密钥授权的细节。通过提供你的API密钥,用户将获得授权。

SWAGGER_SETTINGS = {

    'USE_SESSION_AUTH': False,

    'api_version': '0.1',

    'enabled_methods': [

        'get',

        'post',

    ],

    'SECURITY_DEFINITIONS': {

        "api_key": {

            "type": "apiKey",

            "name": "Authorization",

            "in": "header"

          },

    },

}