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

自动生成接口文档

时间:2022-12-12 17:45:13浏览次数:56  
标签:接口 视图 生成 framework 文档 rest class

目录

rest framework可以自动帮助生成接口文档

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

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

1、安装依赖

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

pip install coreapi

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

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

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

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

3、文档描述说明的定义位置

  1. 单一方法的视图,可以i直接使用视图类的文档字符串,如:
class BookListView(ListAPIView):
    """
    返回所有图书信息
    """
  1. 包含多个方法的视图,在类视图的文档字符串中,分开方法定义,如:
class BookListAPIView(ListAPIView):
    """
    get:
    返回所有图书信息

    post:
    新建图书
    """
  1. 对于视图集ViewSet,仍在类视图的文档字符串中分开定义,但是应使用action名称区分,如:
from rest_framework import mixins
from rest_framework.viewsets import GenericViewSet

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

   retrieve:
   返回图书的详情数据

   latest:
   返回最新的图书数据

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

最后浏览器中输入,http://127.0.0.1:8000/docs/,报错

image-20221211121826453

需要在配置文件settings.py中设置如下:

REST_FRAMEWORK = {
    'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema',
    #默认用的是:  'rest_framework.schemas.openapi.AutoSchema',
}

image-20221211122824978

image-20221211122649995

注意:

  1. 视图集ViewSet中的retrieve名称在接口文档中叫做read
  2. 参数的Description需要在模型类或者序列化器类的字段中以help_text选项定义,如下:
class Book(BaseModel):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=32, verbose_name='书名', help_text='这里填写书名')
    price = models.DecimalField(max_digits=8, decimal_places=2, verbose_name='价格', help_text='这里填写书的价格')

或者

class BookModelSerializer(serializers.ModelSerializer):
    class Meta:
        list_serializer_class = BookListSerializer
        model = Book
        fields = '__all__'
        extra_kwargs = {
            'publish': {
                'required':True,
                'write_only': True,
                'help_text':'出版社'
            }   
        }

标签:接口,视图,生成,framework,文档,rest,class
From: https://www.cnblogs.com/zaosong/p/16976731.html

相关文章

  • (转)J2ME中随机数字的生成
    J2ME和​​J2SE​​不同,不能使用Math类的​​random​​来生成随机数字,只能使用java.util包的Random类来生成随机数字。1、创建Random类型的对象:R......
  • 【校招VIP】线上实习 推电影 电影详情模块 Java文档周最佳
    【推电影】主要是为校招设计的年青人电影推荐平台项目,每个模块都具有亮点和难点,项目表现为手机网站应用,可嵌入小程序或APP中。恭喜来自南京邮电大学的日月同辉同学获得本......
  • Java中文件转字符串的一种实现方式 (环绕执行模式&行为参数化&函数式接口|Lambda表达
    文件转字符串方式 --- (环绕执行模式&行为参数化&函数式接口|Lambda表达式)嗯,当然论方便的话,我们直接可以使用,org.apache.commons.io.FileUtils;StringreadFileToStrin......
  • Vue3.0文档学习心得--响应式工具
    1.isRef:检查某个值是否为ref。返回值是true或者falseletfoo:unknown//返回值是一个类型判定 (typepredicate),这意味着 isRef 可以被用作类型守卫。if(isRe......
  • 版本号自动生成,获得Assembly版本号
    usingSystem.Reflection;获得AssemblyInfo.cs中指定的版本号Assemblya=Assembly.GetAssembly(typeof(Try));AssemblyNamename=a.GetName();Console.WriteLine(name......
  • 原来count(*)是接口性能差的真凶!
    最近我在公司优化过几个慢查询接口的性能,总结了一些心得体会拿出来跟大家一起分享一下,希望对你会有所帮助。我们使用的数据库是Mysql8,使用的存储引擎是Innodb。这次优化除......
  • Visual Studio 快速生成构造函数
    生成构造函数快速操作-VisualStudio(Windows)|MicrosoftLearn 键盘按(Ctrl+.)触发“快速操作和重构”菜单。鼠标右键单击并选择“快速操作和重构”菜......
  • 数据分析必备工具书:Python官方中文文档
    本文推荐数据分析的必备工具书:Python官方文档,注意,这是一份中文文档!(作者孙强)一、前言今天推荐一下Python官方文档,注意,这是一份中文文档!主题:可以说非常详细了,Python3.7全新变......
  • mybatisplus生成代码
    <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version>......
  • Vue3.0文档学习心得--响应式核心
    1.ref():接受一个内部值,返回一个响应式的、可更改的ref对象.此对象只有一个指向其内部值的属性 .value。使用实例:constcount=ref(0) console.log(count.value)//......