首页 > 其他分享 >自动生成文档接口

自动生成文档接口

时间:2023-11-02 11:33:36浏览次数:30  
标签:docs 视图 生成 framework 文档 接口 class

一 自动生成接口文档

REST framework可以自动帮助我们生成接口文档。

接口文档以网页的方式呈现。

自动接口文档能生成的是继承自APIView及其子类的视图。

1.1. 安装依赖

REST framewrok生成接口文档需要coreapi库的支持。

pip install coreapi

1.2. 设置接口文档访问路径

在总路由中添加接口文档路径。

文档路由对应的视图配置为rest_framework.documentation.include_docs_urls

参数title为接口文档网站的标题。

from rest_framework.documentation import include_docs_urls

urlpatterns = [
    ...
    path('docs/', include_docs_urls(title='站点页面标题'))
]

1.3. 文档描述说明的定义位置

1) 单一方法的视图,可直接使用类视图的文档字符串,如

class BookListView(generics.ListAPIView):
    """
    返回所有图书信息.
    """

2)包含多个方法的视图,在类视图的文档字符串中,分开方法定义,如

class BookListCreateView(generics.ListCreateAPIView):
    """
    get:
    返回所有图书信息.

    post:
    新建图书.
    """
PYTHON 复制 全屏

3)对于视图集ViewSet,仍在类视图的文档字符串中封开定义,但是应使用action名称区分,如

class BookInfoViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, GenericViewSet):
    """
    list:
    返回图书列表数据

    retrieve:
    返回图书详情数据

    latest:
    返回最新的图书数据

    read:
    修改图书的阅读量
    """

1.4. 访问接口文档网页

浏览器访问 127.0.0.1:8000/docs/,即可看到自动生成的接口文档。

image

如果遇到报错

#AttributeError: 'AutoSchema' object has no attribute 'get_link'
REST_FRAMEWORK = {
 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema',
    # 新版drf schema_class默认用的是rest_framework.schemas.openapi.AutoSchema

}

两点说明:

1) 视图集ViewSet中的retrieve名称,在接口文档网站中叫做read

2)参数的Description需要在模型类或序列化器类的字段中以help_text选项定义,如:

class Student(models.Model):
    ...
    age = models.IntegerField(default=0, verbose_name='年龄', help_text='年龄')
    ...

class StudentSerializer(serializers.ModelSerializer):
    class Meta:
        model = Student
        fields = "__all__"
        extra_kwargs = {
            'age': {
                'required': True,
                'help_text': '年龄'
            }
        }


原文出处:https://www.cnblogs.com/liuqingzheng/articles/17413678.html

标签:docs,视图,生成,framework,文档,接口,class
From: https://www.cnblogs.com/piggthird/p/17805029.html

相关文章

  • django搭建平台实战教程三:接口编写及权限校验(前后端分离)
    自定义权限校验注册增加group_id字段...@api_view(['POST'])defregister(request:Request):ifDUser.objects.filter(username=request.data["username"]).count()>0:returnResponse({"code":400,&qu......
  • Office文档转pdf格式(二)
    上一篇我们使用的是微软的Office组件将Word、Excel、Powerpoint转为pdf格式,本文将使用WPSOffice组件进行转换。步骤如下: ①添加WPS组件相关引用       注:wpsapi.dll对应的是Word文件API;etapi.dll对应的是Excel文件API;wppapi对应的是PPT文件API;② 编写......
  • AI技术生成照片是如何实现的,用专业角度分析
    随着人工智能技术的快速发展,AI生成图像已经成为一个备受瞩目的领域。人们可以用AI生成图像来创造数字艺术、合成虚拟场景、改进照片质量,甚至生成虚构的人物形象。这项技术的背后有着复杂的算法和深度学习模型,本文将深入探讨AI生成图像是如何实现的。一、数据集的收集与预处理AI......
  • jwt生成token及拦截器解析token
    添加依赖<!--jwt加密--><dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.10.3</version></dependency>......
  • “共享书角”图书借还管理系统 小程序-计算机毕业设计源码+LW文档
    小程序框架:uniapp小程序开发软件:HBuilderX小程序运行软件:微信开发者数据库:DROPTABLEIFEXISTSchujiezhe;/*!40101SET@saved_cs_client=@@character_set_client/;/!40101SETcharacter_set_client=utf8/;CREATETABLEchujiezhe(idbigint(20)NOTNULLAUT......
  • “口腔助手”小程序的设计与实现-计算机毕业设计源码+LW文档
    摘 要随着信息时代的来临,过去的“口腔助手”管理方式缺点逐渐暴露,现在对过去的“口腔助手”管理方式的缺点进行分析,采取计算机方式构建“口腔助手”小程序。本文通过阅读相关文献,研究国内外相关技术,提出了一种预约信息管理、“口腔助手”管理于一体的系统构建方案。本文通过采......
  • 大学生党务学习平台-计算机毕业设计源码+LW文档
    摘 要如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统大学生党务学习平台信息管理难度大,容错率低,管理人员处理数据费工费时,所以专门为解决这个难题开发了一个大学生党......
  • 异常处理(统一接口返回)
    异常处理统一#统一接口返回#自定义异常方法,替换掉全局#写一个方法#自定义异常处理的方法fromrest_framework.viewsimportexception_handlerfromrest_framework.responseimportResponsefromrest_frameworkimportstatusdefmy_exception_handler(exc,contex......
  • 2023牛客暑期多校训练营8 B Bloodline Counter 指数型生成函数 容斥 多项式求逆
    传送门容易想到求出竞赛图上最大环\(\lek\)的数量,再求出\(\lek-1\)的数量作差即可得到答案。设指数型生成函数\(G(x)\)表示大小为\(i\)的环的方案数。\(G(x)=\sum_{i=1}^k\frac{a_i}{i!}x^i\)那么最大环\(\lek\)的数量\(=[x^n]n!\sum_{i=1}^ki!\frac{(G(x))^i}{i!}\)这里......
  • PC企业微信hook接口,通过查询添加外部联系人教程
    简要描述通过查询添加为联系人(外部联系人)操作码102008请求说明参数名必选类型说明type是int类型addType是string类型14微信用户1企业用户user_id是string用户idcontent是string添加请求语openid是string标识syncKey是string同步key请求示例{"type":102008,"data":{"a......