使用drf-yasg自动生成swagger-api文档

使用drf-yasg自动生成swagger-api文档
强烈推介IDEA2021.1.3破解激活,IntelliJ IDEA 注册码,2021.1.3IDEA 激活码  

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说使用drf-yasg自动生成swagger-api文档,希望能够帮助大家进步!!!

所需要的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/,即可进入文档页面

本文来源it小白求知路,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/29145

发表评论