【DRF配置管理】如何建立swagger风格api接口文档

原文作者:我辈李想
版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。

DRF应用和管理

【DRF配置管理】Django安装和使用DRF框架
【DRF配置管理】如何在视图函数配置参数(一)
【DRF配置管理】如何在视图函数配置参数(二)
【DRF配置管理】如何在视图函数配置参数(三)
【DRF配置管理】如何在视图函数配置参数(四)
【DRF配置管理】如何实现JWT身份验证
【DRF配置管理】如何建立openapi风格api接口文档
【DRF配置管理】如何建立coreapi风格api接口文档
【DRF配置管理】如何建立swagger风格api接口文档


文章目录

  • DRF应用和管理
  • 前言
  • 一、drf-yasg 的使用
    • 1.安装drf-yasg
    • 2.INSTALLED_APPS 参数
    • 3.REST_FRAMEWORK 参数
    • 4.SWAGGER参数
    • 5.urls路由配置


前言

swagger风格的文档在很多语言中都存在,比如jave项目。DRF本身虽然可以实现swagger-ui展示,但是功能不完善,官方推荐的第三方库有drf-yasg 和drf-spectacular 。因为采用的身份验证方式不同,接口文档的设置会存在差异。如果使用的是jwt身份验证,我们需要专门设置对应的headers参数。


一、drf-yasg 的使用

1.安装drf-yasg

pip install drf-yasg

2.INSTALLED_APPS 参数

INSTALLED_APPS = [
     ....
    'drf_yasg',
     ...
]

3.REST_FRAMEWORK 参数

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
	    # 自己写的认证类
	    'studentSystemt.apps.user.authen.MyJWTAuthentication'

    ],
}

4.SWAGGER参数

这里针对的是jwt身份验证,实现jwt认证的相关文档生成。

SWAGGER_SETTINGS = {
    'USE_SESSION_AUTH': True,
    'SECURITY_DEFINITIONS': {
        'Token': {
            'type': 'apiKey',  #
            'name': 'Authorization',
            'in': 'header'
        },
    },
}

5.urls路由配置

from django.urls import path, include
from drf_yasg.views import get_schema_view
from drf_yasg import openapi

urlpatterns = [
	...
]

schema_view = get_schema_view(
    openapi.Info(
        title="API接口文档平台",  # 必传
        default_version='v1',  # 必传
        description="这是一个接口文档",
        terms_of_service="http://api.ty.site",
        contact=openapi.Contact(email="ty@qq.com"),
        license=openapi.License(name="BSD License"),
    ),
    public=True,
    permission_classes=(permissions.AllowAny,),  # 权限类
)
urlpatterns += [
    path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
    path('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
]

注释信息参考【DRF配置管理】如何建立coreapi风格接口文档

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/18868.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于狮群算法优化的核极限学习机(KELM)分类算法-附代码

基于狮群算法优化的核极限学习机(KELM)分类算法 文章目录 基于狮群算法优化的核极限学习机(KELM)分类算法1.KELM理论基础2.分类问题3.基于狮群算法优化的KELM4.测试结果5.Matlab代码 摘要:本文利用狮群算法对核极限学习机(KELM)进行优化,并用于分类 1.KE…

HAL库版FreeRTOS(中)

目录 FreeRTOS 任务切换PendSV 异常PendSV 中断服务函数FreeRTOS 确定下一个要运行的任务函数vTaskSwitchContext()函数taskSELECT_HIGHEST_PRIORITY_TASK() PendSV 异常何时触发FreeRTOS 时间片调度实验功能设计软件设计下载验证 FreeRTOS 内核控制函数FreeRTOS 内核控制函数预…

黑马Redis笔记-高级篇

黑马Redis笔记-高级篇 1、Redis持久化(解决数据丢失)1.1 RDB持久化1.1.1 定义1.1.2 异步持久化bgsave原理 1.2 AOF持久化1.3 RDB和AOF比较 2、Redis主从(解决并发问题)2.1 搭建主从架构2.2 主从数据同步原理2.2.1 全量同步2.2.2 增…

java面试笔记-01-集合面试题-介绍

好了,各位同学。下面我们开始新的篇章。就是Java集合相关的面试题。相信啊,说到集合呢,你肯定是比较熟悉的。在我们之前的课程中或者是学习中,大家用过哪些集合比较多呢?List,还有Map对吧? 虽然呢,你使用起来很熟悉,但是在面试的时候,面试官呢,可不会问一些使用的问…

MySQL 数据库 增删查改、克隆、外键 等操作

数据库中有数据表,数据表中有一条一条的记录。 可以用Navicat 等远程连接工具链接数据库,不过数据库需要开启授权。 SQL 字段数据类型 int:整型,默认长度是11 float:单精度浮点,4字节32位 double&#x…

[Gitops--12]微服务项目发布

微服务项目发布 1. 微服务项目发布 [流水线] [创建] [下一步] [创建] 1.1 mall-gateway 确认项目中的路由配置都正确 mall-gateway/src/main/resources/application.yml如果不一样就批量替换一下,一共7处 1.2 mall-auth-server mall-auth-server1.3 mall-cart 1.4 mall-c…

Notepad++配置C语言环境和C++环境

背景: Notepad是我们经常使用的编辑器,我们可以用它编译和运行各种类型的文档,其中就包括了C和C文档。但是编译和运行C或者C文档首先要配置编译环境,下面给大家分享一下如何在NotePad配置C/C编译环境。 工具: NoteP…

ADSP21489之CCES开发笔记(十一)

一、主模式固件加载: 1、激活SPICLK信号,并将SPI_FLG0_O引脚拉低。 2、将读取命令0x03和24位地址0x000000写入从设备。如图24-4所示。 图24-4 二、PCAG时钟选择与配置。 1、来源晶振 2、来源Pin脚 其中来源Pin脚配置PCAG时,需将PCG_CTLx1上加…

Golang每日一练(leetDay0059) 两数之和II、Excel表列名称

目录 167. 两数之和 II 输入有序数组 Two-sum-ii-input-array-is-sorted 🌟🌟 168. Excel表列名称 Excel Sheet Column Title 🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练…

云渲染农场具有什么特点?

众所周知,渲染农场的出现是为了解决长时间的图像渲染问题。渲染农场的底层搭建原理是利用很多计算机、网络和操作系统来构建一个庞大的计算群组,把一个渲染任务从一台机器分发到这个计算群组,从而达到短时间内能够快速得到渲染结果。 到了20…

JavaWeb:Web 的基本概念、Tomcat 服务器、Http 详解、Maven 的下载安装步骤、模仿一个 Servlet

文章目录 JavaWeb - 01一、基本概念1、静态 Web2、动态 Web3、Web 应用程序4、三个技术 二、Web 服务器三、Tomcat 详解四、发布一个 Web 网站五、Http 详解1. Http 请求(1)请求行(2)消息头 2. Http 响应(1&#xff09…

Facebook 用户量十分庞大,为什么还使用 MySQL 数据库?

当谈到社交媒体巨头Facebook时,我们立刻想到的是其庞大的用户基础和每日海量的数据流。然而,您可能会惊讶地发现,尽管面对如此巨大的规模,Facebook 仍然选择使用 MySQL 数据库作为其核心的数据存储和管理系统。 为什么Facebook没…

一文讲透TCP/IP协议 | 图解+秒懂+史上最全

目录 🙋‍♂️ TCP/IP协议详解 🙋‍♂️ TCP/IP协议的分层模型 OSI模型的七层框架 TCP/IP协议与七层ISO模型的对应关系 (一)TCP/IP协议的应用层 (二)TCP/IP协议的传输层 (三)…

【计算机组成原理】第三章 多层次的存储器

系列文章目录 第一章 计算系统概论 第二章 运算方法和运算器 第三章 多层次的存储器 第四章 指令系统 第五章 中央处理器 第六章 总线系统 第七章 外围设备 第八章 输入输出系统 文章目录 系列文章目录前言第三章 多层次的存储器3.1 存储器概述3.1.1 存储器的分类3.1.2 存储器…

软件测试 - 缺陷管理

1. 缺陷的定义 产品不满足用户的需求或者测试执行时实际结果和预期结果不一致都属于缺陷。 2. 缺陷的判定标准及产生原因 软件不满足下述任何一种都算作是软件的缺陷,缺陷的概念是包括bug概念的。 未达到需求说明书指明的功能出现了需求说明书指明不应该出现的错…

Python+Selenium入门级自动化测试脚本编写

一、安装Selenium 安装selenium有三种方式,主要有python下的pip命令安装或者是直接下载安装包进行安装本地文件夹以及直接用pycharm直接安装相应的selenium版本。推荐使用pycharm直接配置安装相应selenium版本(此办法比pip更好用,且不用担心报…

8分钟的面试,我直呼太变态了......

干了两年外包,本来想出来正儿八经找个互联网公司上班,没想到算法死在另一家厂子。 自从加入这家外包公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到11月一纸通知,所有人不许加班,薪资…

【Linux】Job for network.service failed(网卡启动报错)

上图是Linux网卡启动报错的情况 这是由于cat/etc/sysconfig/network-scripts/ifcfg-xxx 中HWADDR的MAC地址和ifconfig中的MAC地址不一样,或者缺少cat/etc/sysconfig/network-scripts/ifcfg-xxx 中HWADDR的MAC地址 1.查看ifconfig中的MAC地址 图中00:0c…

Unity冷知识:读取用户输入应该写在Update还是FixedUpdate里?

Unity冷知识:读取用户输入应该写在Update还是FixedUpdate里? 版权声明: 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明文章内容,不得删减、修改、演绎相关学习资源见文末 一些人…

谈谈几种分布式锁实现

大家好,我是易安!今天我们呢谈一谈常见的分布式锁的几种实现方式。 什么是分布式锁 在JVM中,在多线程并发的情况下,我们可以使用同步锁或Lock锁,保证在同一时间内,只能有一个线程修改共享变量或执行代码块…