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/" ,结果显示如下: