Django-生成API文档(九)
1、简介
- 生成API文档平台
- 自动生成测试代码
- 支持接口测试
2、安装
- coreapi(必选)
- Pygments(可选)
- Markdown(可选)
3、使用coreapi
- 新版的DRF(>3.10)中,需添加如下配置:指定用于支持coreapi的Schema
REST_FRAMEWORK = { 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema' }
from rest_framework.documentation import include_docs_urls from django.urls import path, include urlpatterns = [ path('docs/', include_docs_urls(title='测试平台接口文档')) ]
- 添加注释
- 单一方法的视图
- 直接给类视图添加注释
- 单一方法的视图
class ProjectsList(GenericAPIView): """ 返回所有项目信息 """
-
- 多个方法的视图
class ProjectsListCreateView(ListCreateApiView) """ get: 返回所有项目信息 post: 新建项目 """
-
- 视图集
class ProjectViewSet(viewsets.ModelViewSet): """ list: 获取所有项目信息 read: 查询指定项目Id信息 update: 更新指定项目信息 delete: 删除指定项目 create: 创建项目 names: 获取所有项目名称 interfaces: 获取指定项目的所有接口数据 """
4、使用drf-yasg
- 安装
pip install drf-yasg
- 添加到INSTALLED_APP
INSTALLED_APP = [
'drf-yasg'
]
- 在全局路由urls.py文件中添加配置
# from rest_framework import permissions from drf_yasg.views import get_schema_view from drf_yasg import openapi schema_view = get_schema_view( openapi.Info( title="Lemon API接口文档平台", # 必传 default_version='v1', # 必传 description="这是一个美轮美奂的接口文档", terms_of_service="http://api.keyou.site", contact=openapi.Contact(email="keyou100@qq.com"), license=openapi.License(name="BSD License"), ), public=True, # permission_classes=(permissions.AllowAny,), # 权限类 ) urlpatterns = [ re_path(r'^swagger(?P<format>\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'), path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'), path('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'), ]

浙公网安备 33010602011771号