首页 > 其他分享 >DRF自动生成接口文档:coreapi和Swagger

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

时间:2022-12-13 17:22:48浏览次数:54  
标签:coreapi docs 接口 framework 文档 rest Swagger DRF

我们在开发完一个接口后,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/" ,结果显示如下:

 

标签:coreapi,docs,接口,framework,文档,rest,Swagger,DRF
From: https://www.cnblogs.com/tully/p/16979367.html

相关文章

  • 饮冰三年-人工智能-Django淘宝拾遗-76-DRF实现按月统计以及GroupConcat使用
    饮冰三年-人工智能-Django淘宝拾遗-75-数据准备一、实现按周期统计是一个很常用的功能,在使用python的DRF中也可以实现该功能。按照周进行汇总SELECTDATE_FORMAT(exam......
  • drf 媒体资源配置
    settings#MEDIA存放路径MEDIA_ROOT=os.path.join(BASE_DIR,'media')#MEDIA路由前缀MEDIA_URL="/media/"urls.pyurlpatterns=[#匹配media路由......
  • 给ASP.NET Core WebAPI添加Swagger支持
    ASP.NETCoreWebAPI是开发WebAPI接口的有利武器,且由于拥有.NETCore的基因支持跨平台,是当前.NET中开发接口的有利武器。但一般来说WebAPI接口开发完毕后,在发布前还需要测......
  • 全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)
    一、ApiFox简介介绍:ApiFox是一款集成了API文档、API调试、APIMock、API自动化测试等多种功能于一身的一体化协作平台。功能定位:​​Apifox=Postman+Swagger+Mock......
  • 我的Swagger实例ASP.NET MVC 集成SwaggerUI
      注意:1.在此之前你要确定你已经通过NuGet安装好 Swashbucklev5.6.02.Web项目右键属性-》生成-》勾选XML文档文件,建议用默认路径 3.并且,修改了,项目》App_Start》Swagg......
  • 使用swagger生成接口文档
    1、安装goget-ugithub.com/swaggo/swag/cmd/swaggoget-ugithub.com/swaggo/gin-swaggergoget-ugithub.com/swaggo/filesgoget-ugithub.com/alecthomas/t......
  • SpringBoot整合Swagger2在线文档
    SpringBoot整合Swagger2在线文档一什么是swagger?我们前面有讲到说开发时会创建Restful风格的API接口,供第三方或前端人员使用,那么前端人员在使用的过程中怎么知道有......
  • Springboot整合Swagger2在线文档
    SpringBoot整合Swagger2在线文档一什么是swagger?我们前面有讲到说开发时会创建Restful风格的API接口,供第三方或前端人员使用,那么前端人员在使用的过程中怎么知道有哪些接口......
  • drf 自带BaseFilterBackend
    过滤器fromrest_framework.filtersimportBaseFilterBackendclassMineFilterBackend(BaseFilterBackend):deffilter_queryset(self,request,queryset,view)......
  • 使用 OWIN Self-Host ASP.NET Web API 自宿主 Swagger Swashbuckle 在线文档
    使用OWINSelf-HostASP.NETWebAPIhttps://learn.microsoft.com/zh-cn/aspnet/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-apihttps://www.cn......