SpringDoc介绍

news2024/12/26 11:52:44

一、SpringDoc

官方文档

1.1何为SpringDoc

        SpringDoc是一个用来自动生成API文档的库。它是基于SpringBoot项目的,遵循OpenAPI3(一个组织规定的规范)规范。它是通过检查我们运行中的程序,推断出基于Spring配置、类结构和各种注解的API语义,从而自动生成JSON、YAML和HTML格式的接口文档。

        而我们不得不提的就是Swagger。Swagger是一个公司的开源项目,将自己的API设计贡献给了OpenAPI并由其标准化。在SpringDoc之前我们还可以使用Springfox,和SpringDoc一样是一个用于生成API文档的库,2020年起不再更新。

1.2添加SpringDoc

        我们现在学习SpringDoc的使用。

         我们添加SpringDoc的依赖。

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.6.0</version>
</dependency>

        而在我们的项目运行之后,我们按照下面链接的格式访问即可。其中有一些常量我们可以自己设置。(html格式)

http://server:port/context-path/swagger-ui.html

        一般来说有如下。 

http://localhost:8080/swagger-ui.html

        当然我们也可以去访问json的或yml的,但是不好看。 而且不能进行发请求。

        我们可以在yml文件当中去配置一些信息。

springdoc:
  api-docs:
    # 是否开启接口文档
    enabled: true
    swagger-ui:
      # 持久化认证数据
      persistAuthorization: true
  info:
    # 标题
    title: '标题:${demo.name}多租户管理系统_接口文档'
    # 描述
    description: '描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...'
    # 版本
    version: '版本号: ${demo.version}'
    # 作者信息
    contact:
      name: Agazigi
      email: 123456789@qq.com
      url: www.baidu.com
  components:
    # 鉴权方式配置
    security-schemes:
      apiKey:
        type: APIKEY
        in: HEADER
        name: ${sa-token.token-name}
  #这里定义了两个分组,可定义多个,也可以不定义
  group-configs:
    - group: 1.演示模块
      packages-to-scan: org.dromara.demo
    - group: 2.通用模块
      packages-to-scan: org.dromara.web
    - group: 3.系统模块
      packages-to-scan: org.dromara.system
    - group: 4.代码生成模块
      packages-to-scan: org.dromara.generator

1.3使用SpringDoc 

        我们先完成一个简单的Controller层。

        接着我们访问上边的路径。

1.4详解SpringDoc

1.4.1文档信息设置

        步骤一:创建API文档配置类。

        步骤二:将OpenAPI对象交给IoC容器管理。

        步骤三:对OpenAPI对象进行设定。

1.4.2常用注解

注解含义
@Tag用在controller类上,描述此controller的信息
@Operation用在controller的方法里,描述此api的信息
@Parameter用在controller方法里的参数上,描述参数信息
@Parameters用在controller方法里的参数上
@Schema用于Entity,以及Entity的属性上
@ApiResponse用在controller方法的返回值上
@ApiResponses用在controller方法的返回值上
@Hidden用在各种地方,用于隐藏其api
@NotNull、@Min、@Max非空、值的最大、最小

 1.4.3注解简化

1.4.4配置认证

        步骤一:Application启动类上加@SecurityScheme,并设置信息。

        步骤二:添加其配置。

        步骤三:设计过滤器。

        步骤四:验证结果。

1.4.5文档分组

1.4.6配置信息

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

介绍一些免费 的 html 5模版网站 和配色 网站

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、H5 网站介绍网站 二、配色网站个人推荐 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、H5 网站介绍 以下是一些提供免费…

系统优化工具 | TweakPower v2.0.6 绿色版

TweakPower 是一款专业的系统优化工具&#xff0c;它为Windows用户提供了全面的系统性能提升解决方案。这款软件通过精细调整系统设置&#xff0c;包括注册表项&#xff0c;来显著提高电脑的运行速度和整体性能。 全面优化&#xff1a;提供内存管理、垃圾清理、数据备份、硬盘…

从 Prompt 工程看职场PUA!明明是模型缺陷,为啥要 Prompt 雕花?

简介 小伙伴们好&#xff0c;我是微信公众号《小窗幽记机器学习》的小编&#xff1a;卖豆沙饼的小女孩。在当今的人工智能领域&#xff0c;Prompt 工程已被视为一项重要技能。然而&#xff0c;这一趋势也揭示了当前模型的不足&#xff1a;一个强大的模型应当能够直接理解用户明…

20240916 每日AI必读资讯

超强o1模型智商已超120&#xff01;1小时写出NASA博士1年代码&#xff0c;最新编程赛超越99.8%选手 - 一位UCI物理学博士实测o1&#xff0c;发现自己用时1年完成的博士论文代码&#xff0c;竟被AI在1个小时之内实现了。 - o1在最新门萨智商测试中&#xff0c;IQ水平竟超过了1…

Fish Speech - 新的 TTS 解决方案

文章目录 一、关于 Fish Speech架构Fish Speech V1.1 技术介绍[视频] 二、配置1、Linux 配置2、Docker 配置 三、快速开始1、设置For Windows User / win用户For Linux User / Linux 用户 2、准备模型3、WebUI Inference 四、Break-down CLI Inference1、从语音生成 prompt:2、…

鸿蒙开发之ArkTS 基础四 函数

函数 function 是可以重复使用的代码块 提高开发效率 &#xff0c;例如下面代码: 我需要执行无变&#xff0c;最方便的就是封装到一个方法里面 然后调用五次 fn()方法即可 如图&#xff1a; 函数的步骤是先定义函数 然后使用函数 定义的语法格式是: function 函数名字(){ 函…

Linux命令:文本处理工具sed详解

目录 一、概述 二、用法 1、基本语法 2、常用选项 3、命令格式 4、编辑命令 5、获取帮助 三、 示例 1、替换字符串 2、删除行 &#xff08;1&#xff09;删除包含"string"的所有行 ​编辑 &#xff08;2&#xff09;删除从第1行到第10行的所有行 3、插…

Java 入门指南:JVM(Java虚拟机)垃圾回收机制 —— 死亡对象判断方法

文章目录 垃圾回收机制死亡对象判断方法引用计数法可达性分析算法可以作为 GC Roots 的对象判断对象被回收需要经历的过程 引用类型引用汇总引用队列 废弃常量判定废弃常量废弃原因遵循原则 无用的类所需条件造成的问题解决步骤 垃圾回收机制 垃圾回收&#xff08;Garbage Col…

Anaconda安装并配置Python环境

背景概述 Anaconda&#xff0c;中文大蟒蛇&#xff0c;是一个开源的Anaconda是专注于数据分析的Python发行版本&#xff0c;包含了conda、Python等190多个科学包及其依赖项。 Anaconda就是可以便捷获取包且对包能够进行管理&#xff0c;包括了python和很多常见的软件库和一个…

[OpenCV] 数字图像处理 C++ 学习——15像素重映射(cv::remap) 附完整代码

文章目录 前言1.像素重映射理论基础2.代码实现(1) remap()细节(2)水平翻转(2)垂直翻转(3)旋转 180 度(4)径向扭曲 3.完整代码 前言 像素重映射将图像中的每个像素映射到新位置&#xff0c;实现图像的扭曲、校正等操作。在 OpenCV 中&#xff0c;cv::remap() 函数就是用于实现这…

java实现系统文件管理

java实现系统文件管理 环境&#xff1a;jdk17springbootVueElementUI 背景&#xff1a;公司所做的项目需要别的系统向我们服务器上传文件&#xff0c;当我们需要查看这些文件什么时候上传的、文件数据是怎样的&#xff0c;只能去机房&#xff0c;排查问题效率较低&#xff0c;…

Redis复习笔记整理

目录 1、Redis简介 1.1 补充数据类型Stream 1.2 Redis底层数据结构 1.3 Redis为什么快 1.4 持久化机制* 1.4.1 RDB持久化 bgsave执行流程 如何保证数据一致性 快照操作期间服务崩溃 RDB优缺点 1.4.2 AOF持久化 为什么采用写后日志 如何实现AOF 什么是AOF重写 AO…

期末满分之模拟实现字符串函数

&#xff08;一&#xff09;strcpy 首先我们来了解该函数的使用方式 最简单的理解就是“复制粘贴”&#xff0c;比如现在有一个数组arr1&#xff0c;存放着 hello &#xff1b;还有一个数组arr2&#xff0c;存放着 boy &#xff1b;那么使用该函数之后&#xff0c;形如 strcpy&…

小米,B站网络安全岗位笔试题目+答案

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…

mongoDB-1

文章目录 一、疑似坑1.11.2 mongo ops manager 一、疑似坑 1.1 https://www.bilibili.com/video/BV1H1421R7WD 2.x开始用&#xff0c;现在应该6.x了吧&#xff0c;早期四处鼓吹&#xff0c;为公司打造全mongo服务&#xff0c;为并发几千做了优化&#xff0c;原本打算替代MySQ…

【C++】——list

文章目录 list介绍和使用list注意事项 list模拟实现list和vector的不同 list介绍和使用 在C中&#xff0c;list是一个带头双向链表 list注意事项 迭代器失效 删除元素&#xff1a;当使用迭代器删除一个元素时&#xff0c;指向该元素的迭代器会失效&#xff0c;但是不会影响其他…

订单防重复提交:token 发放以及校验

订单防重复提交&#xff1a;token 发放以及校验 1. 基于Token校验避免订单重复提交 1. 基于Token校验避免订单重复提交 在很多秒杀场景中&#xff0c;用户为了能下单成功&#xff0c;会频繁的点击下单按钮&#xff0c;这时候如果没有做好控制的话&#xff0c;就可能会给一个用…

ElementUI 布局——行与列的灵活运用

ElementUI 布局——行与列的灵活运用 一 . 使用 Layout 组件1.1 注册路由1.2 使用 Layout 组件 二 . 行属性2.1 栅格的间隔2.2 自定义元素标签 三 . 列属性3.1 列的偏移3.2 列的移动 在现代网页设计中&#xff0c;布局是构建用户界面的基石。Element UI 框架通过其强大的 <e…

面向对象程序设计之继承(C++)

1.继承的定义 1.1继承的概念 继承(inheritance)机制是⾯向对象程序设计使代码可以复⽤的最重要的⼿段&#xff0c;它允许我们在保持原有类特性的基础上进⾏扩展&#xff0c;增加⽅法(成员函数)和属性(成员变量)&#xff0c;这样产⽣新的类&#xff0c;称派⽣类。继承 呈现了⾯向…

Day26_0.1基础学习MATLAB学习小技巧总结(26)——数据插值

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍&#xff0c;为了在这个过程中加深印象&#xff0c;也为了能够有所足迹&#xff0c;我会把自己的学习总结发在专栏中&#xff0c;以便学习交流。 参考书目&#xff1a; 1、《MATLAB基础教程 (第三版) (薛山)》 2、《MATL…