码迷,mamicode.com
首页 > 其他好文 > 详细

DRF框架生成接口文档

时间:2020-07-19 23:05:53      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:doc   lis   验证   djang   测试   create   time   mode   art   

一、简介

  • 生成API文档平台
  • 自动生成测试代码
  • 支持接口测试

二、安装

  • coreapi(必须)
  • Pygments(可选)
  • MarkDown(可选)
pip install -i https://pypi.douban.com/simple coreapi
pip install -i https://pypi.douban.com/simple Pygments
pip install -i https://pypi.douban.com/simple MarkDown

三、使用coreapi

1.最新版的DRF(>3.10)中,需要在全局配置文件settings.py中添加如下配置

REST_FRAMEWORK = {
    # 指定用于支持coreapi的Schema
    DEFAULT_SCHEMA_CLASS: rest_framework.schemas.coreapi.AutoSchema,
}

2.在全局路由配置文件中添加以下代码

from rest_framework.documentation import include_docs_urls
from django.urls import path, include
urlpatterns = [
path(docs/, include_docs_urls(title=测试平台接口文档)),
]

3.添加注释

1).单一方法的视图

直接给视图添加注释即可

class ProjectsListView(ListAPIView):
"""
返回所有项目信息
"""

2).多个方法的视图

class ProjectsListCreateView(ListCreateAPIView):
"""
get:
返回所有项目信息
post:
新建项目
"""

3).视图集

class ProjectsViewset(viewsets.ModelViewSet):
"""
create:
创建项目
retrieve:
获取项目详情数据
update:
完整更新项目
partial_update:
部分更新项目
destroy:
删除项目
list:
获取项目列表数据
names:
获取所有项目名称
interfaces:
获取指定项目的所有接口数据
"""

验证结果:

技术图片

四、使用drf-yasg

1.安装

pip install drf-yasg

2.注册drf_yasg

将‘drf_yasg‘添加到全局配置的INSTALLED_APPS中

INSTALLED_APPS = [
...
drf_yasg,
...
]

3.在全局路由文件urls.py文件中添加配置

# from rest_framework import permissions
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
from django.urls import path, re_path

schema_view = get_schema_view(
    openapi.Info(
        title="API接口文档平台",  # 必传
        default_version=v1,  # 必传
        description="这是一个美轮美奂的接口文档",
        terms_of_service="http://api.xiaogongjin.site",
        contact=openapi.Contact(email="xiaogongjin@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=schemaredoc),

]

4.swagger展示

技术图片5.redoc展示

技术图片

DRF框架生成接口文档

标签:doc   lis   验证   djang   测试   create   time   mode   art   

原文地址:https://www.cnblogs.com/xiaogongjin/p/13341081.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!