安装相关依赖
pip3 install drf_yasg
django配置
路由配置
from drf_yasg import openapi
from drf_yasg.views import get_schema_view
schema_view = get_schema_view(
openapi.Info(
title="Demo API",
default_version='v1',
description="Demo description",
terms_of_service="",
contact=openapi.Contact(email="admin@admin.com"),
license=openapi.License(name="BSD License"),
),
public=True,
# permission_classes=(permissions.AllowAny, ),
)
swagger的接口文档生成路径
urlpatterns = [
path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui')
]
视图接口注解配置
请求体+文档目录
from drf_yasg.utils import swagger_auto_schema
# 请求体通过序列化器新建
@swagger_auto_schema(operation_summary='本接口名称', tags=['接口根目录/接口所属目录'],
request_body=PlanBomInsertSerializer)
def create(self, request):
pass
通过对该接口命名,以及所属的模块分类以及请求体数据的自定义,实现接口文档各参数的详细情况。
query参数+文档目录
公共query参数
search = openapi.Parameter('search', openapi.IN_QUERY, type=openapi.TYPE_STRING, required=True)
search_class = openapi.Parameter('search_class', openapi.IN_QUERY, type=openapi.TYPE_STRING, required=True)
# manual_parameters定义接口文档的query参数
@swagger_auto_schema(operation_summary='此接口名称', manual_parameters=[search, search_class],
tags=['根目录/该接口目录'])
def list(self, request):
pass
响应体加文档目录
# 响应体设置接口文档
@swagger_auto_schema(operation_summary='接口名称', tags=['根目录/接口所属目录'],
responses={404: 'Not found', 200: TestInfoListSerializer})
def list(self, request):
pass