智慧水务项目(四)django(drf)+angular 18 添加drf_yasg api接口文档

一、说明

文档api接口是必须的

本来准备用coreapi,据说drf_yasg更流弊

二、步骤

1、requirements.txt添加drf-yasg

2、settings.py中添加部分代码

drf_yasg需要与django.contrib.staticfiles配套使用,一般情况下,项目创建都会在INSTALLED_APPS列表中注册这个工具,如果没有,需要手动添加 

在settings.py最后面添加下面代码

# ====================================#
# ****************swagger************#
# ====================================#
SWAGGER_SETTINGS = {# 基础样式"SECURITY_DEFINITIONS": {"basic": {"type": "basic"}},# 如果需要登录才能够查看接口文档, 登录的链接使用restframework自带的."LOGIN_URL": "apiLogin/",# 'LOGIN_URL': 'rest_framework:login',"LOGOUT_URL": "rest_framework:logout",# 'DOC_EXPANSION': None,# 'SHOW_REQUEST_HEADERS':True,# 'USE_SESSION_AUTH': True,# 'DOC_EXPANSION': 'list',# 接口文档中方法列表以首字母升序排列"APIS_SORTER": "alpha",# 如果支持json提交, 则接口文档中包含json输入框"JSON_EDITOR": True,# 方法列表字母排序"OPERATIONS_SORTER": "alpha","VALIDATOR_URL": None,"AUTO_SCHEMA_TYPE": 2,  # 分组根据url层级分,0、1 或 2 层"DEFAULT_AUTO_SCHEMA_CLASS": "apps.utils.swagger.CustomSwaggerAutoSchema",
}

3、 如下图usrl.py全文

from django.urls import path, include, re_pathfrom drf_yasg import openapi
from drf_yasg.views import get_schema_view
# 导入权限控制模块
from rest_framework import permissions
from apps.utils.swagger import CustomOpenAPISchemaGeneratorschema_view = get_schema_view(openapi.Info(title="SmartWater API",default_version="v1",description="smartwater 接口文档",terms_of_service="https://www.google.com/policies/terms/",contact=openapi.Contact(email="123@qq.com"),license=openapi.License(name="BSD License"),),public=True,permission_classes=(permissions.AllowAny,),generator_class=CustomOpenAPISchemaGenerator,
)
urlpatterns = [re_path(r"^swagger(?P<format>\.json|\.yaml)$",schema_view.without_ui(cache_timeout=0),name="schema-json",),path("",schema_view.with_ui("swagger", cache_timeout=0),name="schema-swagger-ui",),path(r"redoc/",schema_view.with_ui("redoc", cache_timeout=0),name="schema-redoc",),re_path(r"^api-auth/", include("rest_framework.urls", namespace="rest_framework")),
]

 注意目录

4、添加swagger.py文件

注意目录

 

代码:

from drf_yasg.generators import OpenAPISchemaGenerator
from drf_yasg.inspectors import SwaggerAutoSchemafrom smartwater.settings import SWAGGER_SETTINGSdef get_summary(string):if string is not None:result = string.strip().replace(" ","").split("\n")return result[0]class CustomSwaggerAutoSchema(SwaggerAutoSchema):def get_tags(self, operation_keys=None):tags = super().get_tags(operation_keys)if "api" in tags and operation_keys:#  `operation_keys` 内容像这样 ['v1', 'prize_join_log', 'create']tags[0] = operation_keys[SWAGGER_SETTINGS.get('AUTO_SCHEMA_TYPE', 2)]return tagsdef get_summary_and_description(self):summary_and_description = super().get_summary_and_description()summary = get_summary(self.__dict__.get('view').__doc__)description = summary_and_description[1]return summary,descriptionclass CustomOpenAPISchemaGenerator(OpenAPISchemaGenerator):def get_schema(self, request=None, public=False):"""Generate a :class:`.Swagger` object with custom tags"""swagger = super().get_schema(request, public)swagger.tags = [{"name": "token","description": "认证相关"},]return swagger

 三、测试一下

python manage.py runserver 127.0.0.1:8000

没有写view,所以东西没有 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Javaweb用过滤器写防跳墙功能和退出登录

一、什么是防跳墙功能&#xff1a; 防跳墙功能通常指的是防止用户在未完成认证的情况下直接访问受保护资源的功能。在 Web 开发中&#xff0c;这种功能通常被称为“登录拦截”或“身份验证拦截”。 在 Spring MVC 中&#xff0c;实现这种功能通常使用的是“拦截器”&#xff08…

ASPCMS 漏洞

一、后台修改配置文件拿shell 登录后台后如下点击 点击保存并抓包 将slideTextStatus的值修改为1%25><%25Eval(Request(chr(65)))25><%25 放包&#xff08;连接密码是a&#xff09; 影响文件为 /config/AspCms_Config.asp 访问文件,使用工具连接

【WPF开发】安装环境、新建工程

一、安装环境 在安装VS时候&#xff0c;勾选安装开发环境 如果已安装VS&#xff0c;可以到工具中查看是否有相应环境 二、新建工程 点击“创建新项目” 通过顶部过滤&#xff0c;C#&#xff0c;选择“WPF应用&#xff08;NET.framework&#xff09;”&#xff0c;并点击“下一…

基于Java+SpringBoot+Vue的母婴商城

基于JavaSpringBootVue的母婴商城 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 哈喽兄弟们…

Datawhale AI 夏令营(2024第三期)AI+逻辑推理方向 模型微调学习笔记

如何基于开源大模型进行优化 1. Prompt工程 大模型可能知道问题相关&#xff0c;但是我们问的不清楚。所以需要根据我们的提问&#xff0c;构建出一个比较结构化的、大模型易于理解和分析的提问内容。 在下方的第二个资料里&#xff0c;我才知道有这么多Prompt的构建思路&…

1688中国站获得工厂档案信息 API

公共参数 名称类型必须描述keyString是免费申请调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_search_shop等]cacheString否[yes,no]默认y…

谷粒商城实战笔记-110~114-全文检索-ElasticSearch-查询

文章目录 一&#xff0c;110-全文检索-ElasticSearch-进阶-两种查询方式二&#xff0c;111-全文检索-ElasticSearch-进阶-QueryDSL基本使用&match_all三&#xff0c;112-全文检索-ElasticSearch-进阶-match全文检索四&#xff0c;113-全文检索-ElasticSearch-进阶-match_ph…

STM32F401VET6 PROTEUS8 ILI9341 驱动显示及仿真

stm32cubemx新建工程代码&#xff0c;并生成工程 设置gpio 设置SPI 其他的参考stm32默认设置 然后编辑驱动代码 ili9341.h #ifndef ILI9341_H #define ILI9341_H#include <stdbool.h> #include <stdint.h>#include "glcdfont.h" #include "stm32…

七大云安全威胁及其应对方法

关注公众号网络研究观获取更多内容。 对于任何依赖云来容纳快速增长的服务的企业来说&#xff0c;确保安全都是重中之重。然而&#xff0c;正如大多数云采用者很快意识到的那样&#xff0c;迁移到动态云环境需要新的和更新的安全措施&#xff0c;以确保数据和其他关键资产在整…

idea-springboot后端所有@注释含义汇总-持续更新!

&#xff08;1&#xff09;启动类 ①SpringBootApplication 出现这个代表这个就是整个程序的入口&#xff0c;是运行的开始位置 ②ComponentScan("com.example.dao.impl") 启动时自动扫描制定beans包 &#xff08;2&#xff09;mapper层&#xff08;Dao层&#xf…

反贿赂体系认证:企业诚信经营的护航者

在当今商业环境中&#xff0c;企业不仅要追求经济效益&#xff0c;更要坚守诚信经营的原则。反贿赂体系认证作为现代企业合规管理的重要手段&#xff0c;不仅提升了企业的道德形象&#xff0c;还为其市场竞争力注入了强劲动力。以下是反贿赂体系认证对企业的多方面益处。 首先&…

函数递归超详解!

目录 1.什么是递归调用&#xff1f; 直接调用 间接调用 2.什么是递归&#xff1f; 3.递归举例 3.1求n!的阶乘 3.1.1.非递归法 3.1.2.递归法 3.1.2.1分析和代码实现 3.2顺序打印一个整数的每一位 3.2.1分析和代码实现 4.递归与迭代 4.1举例&#xff1a;斐波那契数列 …

基于JSP的家用电器销售网站

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSPJava 工具&#xff1a;ECLIPSE、MySQL数据库管理工具、Tomcat 系统展示 首页 个人中心 商品信…

数据建模标准-基于事实建模

前情提要 数据模型定义 DAMA数据治理体系中将数据模型定义为一种文档形式&#xff0c;数据模型是用来将数据需求从业务传递到IT,以及在IT内部从分析师、建模师和架构师到数据库设计人员和开发人员的主要媒介&#xff1b; 作用 记录数据需求和建模过程中产生的数据定义&…

工业大数据通过哪些方式实现价值?详解实施工业大数据的难点!

在数字化转型的浪潮中&#xff0c;工业大数据正成为推动制造业革新的核心动力。它不仅重塑了生产流程&#xff0c;还为企业带来了前所未有的洞察力和竞争优势。本文将深入探讨工业大数据的类别、价值实现方式&#xff0c;以及在实施过程中存在的挑战和解决方案。 更多详细内容&…

RabbitMQ 入门篇

接上一篇《RabbitMQ-安装篇&#xff08;阿里云主机&#xff09;-CSDN博客》 安装好RabbitMQ后&#xff0c;我们将开始RabbitMQ的使用&#xff0c;根据官网文档RabbitMQ Tutorials | RabbitMQ&#xff0c;我们一步一步的学习。 1. "Hello World!" 这里先说明几个概…

PostgreSQL 15

一、安装前的准备 1、版本信息 操作系统CentOS 7.9.2009PostgreSQL 版本PostgreSQL 15-15.7 2、下载安装包 RPM Chart - PostgreSQL YUM Repositoryhttps://yum.postgresql.org/rpmchart/进入官网&#xff0c;找到相应版本 点击框选内容 依次进入下载页面&#xff0c;下载相…

如何在OpenHarmony 4.1R上设置系统默认不锁屏(修改系统锁屏应用)

本文介绍如何修改系统锁屏应用&#xff0c;从而实现在OpenHarmony 4.1R上设置系统默认不锁屏。 环境配置 1.DevEco Studio 4.1 Release&#xff0c;下载链接地址 API10 Full SDK,安装教程 步骤 1.首先下载4.1r分支的系统锁屏应用applications_screenlock 2.修改系统锁屏应…

【C++:jsoncpp库的配置CMAKE的安装】

CMAKE的安装&#xff1a; 安装路径&#xff1a;Download CMake安装就是无脑Next跳出以下窗口以上步骤完了之后&#xff0c;页面如此&#xff0c;然后点击generate jsoncpp库的配置&#xff1a; 打开生成的源文件所在路径&#xff0c;找到名为jsoncpp.sln的文件&#xff0c;以vs…

电脑出现连接不上网络,远程计算机不接受连接的解决方法

第一步&#xff1a;打开Cmd,输入inetcpl.cpl inetcpl.cpl 第二步&#xff1a;点击“连接” 第三步&#xff1a;点击局域网设置 第四步&#xff1a;三个都不选&#xff0c;点击确定 之后网络就可以正常访问了&#xff01;