• DRF框架生成接口文档


    一、简介

    • 生成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展示

  • 相关阅读:
    P3368 【模板】树状数组 2
    P3374 【模板】树状数组 1
    BZOJ 2654
    BZOJ 1016
    BZOJ 4870
    BZOJ 4868
    BZOJ 1503
    P3379 【模板】最近公共祖先(LCA)
    雅礼2017国庆1-1
    使用 CefSharp 网页显示问题
  • 原文地址:https://www.cnblogs.com/xiaogongjin/p/13341081.html
Copyright © 2020-2023  润新知