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

自动生成接口文档

时间:2024-04-21 22:13:06浏览次数:27  
标签:视图 生成 framework 文档 接口 class 图书

自动生成接口文档

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

​ 接口文档以网页的形式呈现

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

使用步骤

安装依赖

​ REST framework生成接口文档需要coreapi库的支持

pip install coreapi

设置接口文档访问路径

​ 需要在总路由中添加接口文档路径

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

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

from rest_framework.documentation import include_docs_urls

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

文档描述说明的定义位置

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

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

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

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

    post:
    新建图书.
    """

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

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

    retrieve:
    返回图书详情数据

    latest:
    返回最新的图书数据

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

配置文件

#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': '年龄'
            }
        }

标签:视图,生成,framework,文档,接口,class,图书
From: https://www.cnblogs.com/Hqqqq/p/18149605

相关文章

  • Reddit采集API reddit文章评论和搜索 实时数据接口
    近期调研发现iDataRiver平台https://www.idatariver.com/zh-cn/提供开箱即用的Reddit数据采集API,是目前用下来最方便简单的API,可以抓取reddit公开数据,例如subreddit中的帖子、按关键字搜索以及文章评论等,供用户按需调用。接口使用详情请参考RedditAPI接口接口列表1.获......
  • RPC接口和http接口的区别
    最本质的区别,就是RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹RPC服务RPC架构一个完整的RPC架构里面包含了四个核心的组件,分别是Client,Server,ClientStub以及ServerStub,这个S......
  • 短链接口设计&禁用Springboot执行器端点/env的安全性
    短链接口设计//短链接服务跳转方式,实现短链接转长链接的请求。@GetMapping("/{code}")publicStringredirectUrl(@PathVariable("code")Stringcode){return"redirect:"+shortUrl.getLongUrl();}禁用Springboot执行器端点/env的安全性#关闭健康检查不安全接口end......
  • 抽象类和接口有什么区别
    接口和抽象类都是用来定义对象的公共行为的,两者本身不能实例化,但二者有以下7点不同:1.定义关键字不同:接口使用关键字interface来定义,抽象类使用关键字abstract来定义。2.继承或实现的关键字不同:接口使用implements关键字定义其具体实现,抽象类使用extends关键字实现继承。......
  • 泛型模板化设计使用-订单搜索接口
    泛型模板化设计使用-订单搜索接口1.定义订单搜索接口packagecom.example.core.mydemo.java.templateQuery;//暂不使用该接口//publicinterfaceSearchService<TextendsBaseRequest,FextendsBaseResponse>{publicinterfaceSearchService<T,F>{/***订单......
  • 注释和文档
    注释规范1.哪些地方需要注释?类方法重要的变量2.注释的作用和注意事项说明类、方法和变量的作用和用法。避免过度注释,不要对每一个变量都进行注释,这样会降低代码的可读性。3.注释单行注释//声明一个整数intnumber;number=10;//将10赋值给number多行注释/......
  • Java设计模式-责任链模式,应用接口多个参数验证,订单多个费用的计算
    Java设计模式-责任链模式,应用接口多个参数验证,订单多个费用的计算1.定义请求和返回对象的上下文对象packagecom.example.core.mydemo.java.filter;importjava.time.LocalDateTime;publicclassOrderReqContext{/***租客会员号*/StringmemNo;......
  • 接口加密传输设计及AES加解密代码DEMO
    接口加密传输设计及AES加解密代码DEMO接口加密的方案设计:可以将请求的json字符串aes加密,通过params字段传输,接口服务端接收到参数,先解密,然后转换成对象。继续业务逻辑的处理。(另外一种方案是:针对敏感字段aes加密,服务接收端对敏感字段来解密处理)RequestVo对象:privateS......
  • FFmpeg如何查询命令帮助文档
    FFmpeg如何查询命令帮助文档ffmpeg/ffplay/ffprobe区别ffmpeg:​ HyperfastAudioandVideoencoder​ 超快音视频编码器(类似爱剪辑)ffplay:​ Simplemediaplayer简单媒体播放器ffprobe:​ Simplemultimediastreamsanalyzer​ 简单多媒体流分析器ffmpeg命令查看......
  • Random 项目总结 -08 生成WORD 报告
    usingSystem.Windows.Forms;usingSystem.Xml;usingMsword=Microsoft.Office.Interop.Word;privatevoiddy_Click(objectsender,EventArgse){Formf1=dy.FindForm();intgx=f1.Location.X;intgy=f1.Location.Y;......