所需要的python库
drf-yasg django djangorestframework
安装drf-yasg库
pip install drf-yasg
配置
#setting.py文件
REST_FRAMEWORK = {
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema'
}
# swagger 配置项
SWAGGER_SETTINGS = {
# 基础样式
'SECURITY_DEFINITIONS': {
"basic":{
'type': 'basic'
}
},
# 到处文件配置
'DEFAULT_INFO': 'server.urls.openapi_info',
# 如果需要登录才能够查看接口文档, 登录的链接使用restframework自带的.
'LOGIN_URL': 'rest_framework:login',
'LOGOUT_URL': 'rest_framework:logout',
"enabled_methods": [
'get',
'post',
'put',
'patch',
'delete'
],
# 'DOC_EXPANSION': None,
# 'SHOW_REQUEST_HEADERS':True,
# 'USE_SESSION_AUTH': True,
# 'DOC_EXPANSION': 'list',
# 接口文档中方法列表以首字母升序排列
'APIS_SORTER': 'alpha',
# 如果支持json提交, 则接口文档中包含json输入框
'JSON_EDITOR': True,
# 方法列表字母排序
'OPERATIONS_SORTER': 'alpha',
'VALIDATOR_URL': None,
}
#url.py文件
from django.contrib import admin
from django.urls import path, include, re_path
from rest_framework import permissions
from drf_yasg2.views import get_schema_view
from drf_yasg2 import openapi
openapi_info = openapi.Info(
title="模板数据管理服务",
default_version='v1',
description="模板数据管理服务",
# terms_of_service="https://www.tweet.org",
contact=openapi.Contact(email="xxx@xxx.com"),
# license=openapi.License(name="Awesome IP"),
)
schema_view = get_schema_view(
openapi_info,
public=True,
permission_classes=(permissions.AllowAny,),
)
urlpatterns = [
path('admin/', admin.site.urls),
path('api-auth/',include('rest_framework.urls',namespace='rest_framework')),
re_path(r'^docs(?P<format>\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'), # <-- 这里
path('docs/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui')
]
打开文档方式
启动django服务,在浏览器输入ip:port/docs/
,即可进入文档页面