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'),

]

 

posted @ 2019-10-29 10:24  sinder2018  阅读(46)  评论(0)    收藏  举报