DRF自动生成接口文档:coreapi和Swagger

我们在开发完一个接口后,REST framework可以自动帮助我们生成接口文档,我们只需要简单设置即可。下面介绍coreapi和Swagger这两种。

一、coreapi

1、安装依赖

pip install coreapi

安装成功显示如下:

2、设置接口文档访问路径

在总路由url.py文件中添加接口文档路径,文档路由对应的视图配置为rest_framework.documentation.include_docs_urls

from rest_framework.documentation import include_docs_urls

urlpatterns = [
    ...
    path('docs/', include_docs_urls(title='我的商城接口文档'))

]

3、在配置文件settings.py中配置

REST_FRAMEWORK = {

    'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema'
}

4、运行效果

访问 " http://127.0.0.1:8000/docs/ ",接口文档如图显示:

二、swagger

1、安装配置django-rest-swagger

pip install django-rest-swagger

安装成功后显示如下:

 2、在settings.py配置文件注册

INSTALLED_APPS = [
     ...
    'rest_framework_swagger'

]

3、配置视图类:文档描述说明的定义位置

如果对接口文档中的方法进行注释说明,则在该类下添加注释即可。

部分代码展示如下:

class CourseCategoryViewSet(GenericViewSet, ListModelMixin):
    '''获取所有课程分类接口''' 
    queryset = CourseCategory.objects.all().filter(is_delete=False, is_show=True).order_by('orders')
    serializer_class = CourseCategorySerializer


class CourseChapterViewSet(GenericViewSet, ListModelMixin):
    '''根据课程id,查询该课程所有的章节(章节中带课时)接口'''
    queryset = CourseChapter.objects.all().filter(is_delete=False, is_show=True).order_by('orders')
    serializer_class = CourseChapterSerializer
    filter_backends = [DjangoFilterBackend]  
    filterset_fields = ['course']  

4、配置路由

在总路由url.py中添加如下代码:

from rest_framework.schemas import get_schema_view  
from rest_framework_swagger.renderers import SwaggerUIRenderer, OpenAPICodec

schema_view = get_schema_view(title='我的商城接口文档', renderer_classes=[SwaggerUIRenderer, OpenAPICodec])

urlpatterns = [
    ...
    path('docs2/', schema_view, name='docs')    
]    

5、 运行效果

访问 "http://127.0.0.1:8000/docs2/" ,结果显示如下:

 

posted @ 2022-12-13 17:15  Tutu007  阅读(359)  评论(0编辑  收藏  举报