在开发一个应用程序时,我们将编写我们所需的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"
},
},
}