24.从零开始学springboot-swagger2文档自动生成

Springfox Swagger2从入门到精通 Swagger 是一种用于设计、构建、文档化和使用 RESTful API 的工具。Springfox 是 Swagger 在 Spring 应用中的集成库,提供了自动生成 API 文档的功能。在本文中,我们将探讨如何使用 Springfox Swagger2 在 Spring Boot 项目中生成、配置和使用 API 文档。 阅读详情

前言

在软件开发周期中,我们写完代码常常还要写文档,一方面给调用方提供调用文档,一方面也能归档。
其实,做开发的对于写文档这件事很是呵呵,占用了至少40%的开发时间,而且每当代码有调整,还得记得去修改对应的文档。
那么,springboot有没有哪种方法可以帮助我们自动生成文档呢,这样能解决我们开发人员的痛点。
本章,我们就来介绍Swagger2这个东东,使用后你会爱上它的。

好处:

  • 自动生成文档,代码写完,文档即完成
  • 无需复杂的配置,简单易用

Swagger2常用注解

@Api()用于类;
表示标识这个类是swagger的资源

tags:表示说明
value:也是说明,可以使用tags替代

@Api(value="测试controller",tags={"测试接口"})
@RestController
public class Swagger2Controller {
}

@ApiOperation()用于方法;
表示一个http请求的操作

value:用于方法描述
notes: 用于提示内容
tags: 可以重新分组

@ApiOperation(value="获取列表",tags={"获取列表信息"},notes="列表")
@GetMapping("/getList")
public int getList() {
      return 1;
}

@ApiParam()用于方法,参数,字段说明;
表示对参数的添加元数据(说明或是否必填等)

name:参数名
value:参数说明
required:是否必填

@ApiOperation("查询2")
@GetMapping("/query")
public Long query(@ApiParam(name = "id", value = "id", required = true) Long id, @ApiParam(name = "name", value = "名称", required = true) String name) {
        return id;
    }

@ApiModel()用于类
表示对类进行说明,用于参数用实体类接收
value:表示对象名
description:描述

@ApiModel(value="Person对象",description="用户对象Person")
public class Person {
}

@ApiModelProperty()用于方法,字段
表示对model属性的说明或者数据操作更改
value:字段说明
name:重写属性名字
dataType:重写属性类型
required:是否必填
example:举例说明
hidden:隐藏

public class Person {
@ApiModelProperty(value = "名称", name = "name", example = "张三", required = true)
    private String name;
}

@ApiIgnore()用于类,方法,方法参数
表示这个方法或者类被忽略

    @ApiIgnore()
    @ApiOperation("隐藏")
    @ApiParam(name = "Person对象", value = "传入json格式", required = true)
    @GetMapping("/hideFunc")
    public Person hideFunc(@RequestBody Person person) {
        return person;
    }

@ApiImplicitParam() 用于方法
表示单独的请求参数
name:参数ming
value:参数说明
dataType:数据类型
paramType:参数类型
example:举例说明

    @ApiOperation("详情")
    @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "long", paramType = "query")
    @GetMapping("/getInfoById")
    public Long getInfoById(Long id) {
        return id;
    }

@ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam

    @ApiOperation("查询")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "id", dataType = "long", paramType = "query"),
            @ApiImplicitParam(name = "name", value = "名称", dataType = "string", paramType = "query", example = "张三")
    })
    @GetMapping("/queryList")
    public Long queryList(Long id, String name) {
        return id;
    }

更多注解及使用方式请查看

官方WIKI

Swagger2配置

@Configuration
@EnableSwagger2
public class Swagger2Config {

    //http://127.0.0.1:8080/swagger-ui.html#/


    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .useDefaultResponseMessages(false)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("swagger自动构建文档")
                .description("简单使用swagger2")
                .version("1.0.0")
                .build();
    }
}

文档查看地址

http://127.0.0.1:8080/swagger-ui.html#/

项目地址

https://github.com/MrCoderStack/SpringBootDemo/tree/master/sb-swagger2

请关注我的订阅号

订阅号.png

swagger2学习文档 OpenAPI 是一个编写 API 文档的规范,然而如果手动去编写 OpenAPI 规范的文档,是非常麻烦的。而 Swagger 就是一个实现了OpenAPI 规范的工具集。号称世界上最流行的Api框架RestFul Api 文档在线自动生成工具,Api文档与Api定义同步更新直接运行,可以在线测试API接口支持多种语言:(Java,php等) 阅读详情

相关推荐

【微服务】springboot整合swagger多种模式使用详解

springboot整合swagger多种模式使用详解

congge_study的博客 6263

@ApiModel 遇到的问题

使用 swagger2 中的 @ApiModel 注解不规范遇到的 swagger 文档 错乱问题: 1. 习惯 以前使用swagger2时, 在出入参实体上添加注解@ApiModel时习惯性的添加value = "XXX"属性, 旧版本中一直没有发现有什么问题. 2. 遇坑 最近在使用swagger2:2.9.2版本时, 遇到一个问题,swagger文档中的 入参 结构示例中的入参参数跟代码的入参对象中的字段不匹配不一致, 导致接口联调问题多 3. 排查 经过排查发现是因...

Qbaiwan的博客 2041

【SpringBoot笔记11】SpringBoot框架集成Swagger2文档

Swagger是一款API文档工具,SpringBoot中集成Swagger之后,通过访问swagger-ui前端界面,就可以查看当前工程里面所有对外提供的接口以及出入参之后,不仅如此,swagger还可以和postman一样,直接调用后端接口地址,这在前后端分离模式下,swagger就变得非常有用了,因为前端开发人员,只需要看swagger接口文档,就可以进行开发,而不需要我们后端开发人员自己写个接口文档。SpringBoot没有专门提供swagger的starter启动器,所以我们需要自己单独引入s

✅ Java 开发工程师 1558

spring boot整合Swagger2

定义了只有dev和test环境才会加载swagger,所以如果你部署起来需要放开端口,请把环境设置成test,prod为了安全性是强制不让开的。为了保证接口文档的安全,禁用了生产环境的加载,具体说明请看:https://sns.bladex.vip/q-39.html。Spring Boot 项目中如果集成了 Spring Security,在不做额外配置的情况下,Swagger2 文档会被拦截。使用 Swagger 我们可以快速生成一个接口文档网站,接口一旦发生变化,文档就会自动更新,

andrew_dear的博客 804

Visual Studio 2013 + Intel(R) Visual Fortran 安装教程

安装了好几遍,ivf都不能加载到vs中,中途放弃了vs,又改用codeblocks编译器,依然在写fortran的时候出现了各种问题,于是又放弃了codeblocks改回vs,总之是折腾了好久,终于装明白了ivf并且将fortran模板成功加载到vs中。 PS:一定要安装Intel Visual Fortran.Composer XE.2013-SP1,不要用Intel Visual Fortr...

Coco_wjy的博客 12万+

虚拟机扩容——非LVM分区

虚拟机扩容——非LVM分区

ytraister的博客 3905

【Swagger2】标准写法及例子

Swagger2标准写法及例子

weixin_50223520的博客 1076

Kubernetes集群环境搭建与初始化

Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。

m0_75254642的博客 1523

@ApiModel

是 Swagger (现在通常被称为 OpenAPI) 中的一个注解,用于在 RESTful Web 服务中描述 API 的模型。注解通常用于 Java 类的顶部,这些类代表 API 响应或请求体中的模型对象。这个注解提供了关于模型的元数据,如模型的名称、描述和子类型等。通过使用这些注解,你可以更容易地为你的 RESTful Web 服务生成和维护 API 文档。注解则用于类中的字段,并为它们提供了额外的元数据,如字段的描述和是否必需等。),开发人员可以自动地生成这些文档,而无需手动编写和维护它们。

weixin_51687565的博客 2510

RAD Studio 12安装全攻略:从下载到破解InterBase的完整流程(附KeyPatch使用技巧)

本文提供RAD Studio 12的完整安装指南,包括系统要求、安装步骤及InterBase数据库的高效配置方法。详细介绍了如何使用KeyPatch工具进行许可证处理,并分享了IDE优化和开发技巧,帮助开发者快速上手这一强大的跨平台开发工具。

q6r7s8t9的博客 946

【STM32】STM32F407实现简单的Modbus协议

1.ModBus协议简介 MODBUS协议是一种串行通信协议,由Modicon公司(施耐德公司前身)发表,由于其公开发表且无版权要求,易于部署和维护,在工业界广泛应用。MODBUS采用主从通信(Master/Slave),MODBUS有三种报文格式:ASCII、RTU、TCP,本文主要讨论RTU。 如下图所示,串行通信上的MODBUS协议主要由地址,功能码,数据,CRC校验四部分数据帧构成。主机和从机的串行通信设备要求一致,参数要求一致,即假设使用串口,主从机波特率,奇偶校验...

BadBoyHolly的博客 8183

jpa笔记

jpa笔记

weixin_46732884的博客 303

74HC165级联踩坑实录:STM32读取32路开关状态,时序调试与常见问题排查

本文详细介绍了74HC165级联在STM32读取32路开关状态时的时序调试与常见问题排查。从硬件设计的PCB布局优化、电源噪声控制,到软件时序的精确调校和数据采集策略,提供了完整的解决方案。通过逻辑分析仪和示波器的高效使用,解决了信号延迟和干扰问题,最终实现了稳定可靠的32路信号读取。

weixin_34046298的博客 313

【SpringBoot框架篇】17.使用swagger2生成RESTful风格的接口文档

使用swagger2生成RESTful风格的接口文档

皓亮君的博客 2364

FPGA上的YOLOv8加速实现:从Verilog到高层综合

YOLOv8 采用了更高效的C2f模块与轻量化Backbone结构,模型特征包括:结构紧凑、检测头融合高低层特征;支持Anchor-free检测机制;支持INT8、FP16低精度推理;计算密度高,适合FPGA并行优化。

2501_93174773的博客 917

RFC-only 与 SAProuter 场景下,让 Claude 真正参与 SAP ABAP 开发

SAP ABAP 开发这几年正在出现一个很有意思的变化。过去我们说开发工具,脑子里大多是 SE80、SE38、SE24、SEGW、Eclipse ADT,再往后是 BAS、VS Code、abapGit、ATC、CI/CD。现在又多了一层,Claude Code、Claude Desktop 这类 AI 编程助手开始通过 MCP 进入开发现场,不只是写一段示例代码,而是能读系统里的 ABAP 对象、搜索包、改源码、跑检查、辅助重构。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1617

SpringBoot使用swagger-spring-boot-starter maven依赖包实现Swagger2

前言 本文主要介绍SpringBoot框架下,如何使用swagger-spring-boot-starter maven依赖包实现Swagger2 适用于对SpringBoot+maven 有一定基础的同学。 一、Swagger2是什么? Swagger是一个RESTFUL 接口的文档在线自动生成和功能测试的框架。 Swagger 是一个规范和完整的框架。用于生成、描述、调用和可视化RestFul风格的Web服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新文件的方法、参数和模型紧密集成到服务器

kongtong2004的专栏 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Swagger2入门

在团队开发中,一个好的 API 文档不但可以减少大量的沟通成本,还可以帮助一位新人快速上手业务。传统的做法是由开发人员创建一份 RESTful API 文档来记录所有的接口细节,并在程序员之间代代相传。这种做法存在以下几个问题:1)API 接口众多,细节复杂,需要考虑不同的HTTP请求类型、HTTP头部信息、HTTP请求内容等,想要高质量的完成这份文档需要耗费大量的精力;2)难以维护。

2201_75516800的博客 3884

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

SpringBoot配置swagger-ui可视化接口文档

SpringBoot配置swagger-ui [提前声明] 文章由作者:张耀峰 结合自己生产中的使用经验整理,最终形成简单易懂的文章 写作不易,转载请注明,谢谢! 代码案例地址:

只有变秃,才能更强 2万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

自制的springboot接口文档组件swagger2

简介 什么是 swagger? **Swagger 是一款自动生成在线文档 + 接口调试的工具。在 WEB 开发中不可否认的是我们需要给客户端提供 API 接口,这个时候需要借助 postman、rap 等工具 进行调试,以便于接口能正常交付给客户端人员,用过其它工具的应该知道一个 POST 请求一堆参数是非常枯燥且烦人的事情,而 swagger 就是让你摆脱这种束缚感….** ...

LuisChen的博客 8118

利用Swagger2来构建接口文档(Spring)

文章目录前言一、使用步骤1.创建SpringBoot项目2.导入Swagger相关的依赖3.配置Swagger24.接口开发-根据书籍号查询书籍名称4.接口开发-根据书籍号删除相应的书籍信息5.接口开发-增加书籍信息(使用到实体类)总结 前言 在前后端分离的开发中,后端只负责业务开发,而前端负责页面的设计以及数据的接入,前端需要后端的接口地址才能完成数据的接入。为了减少前后端开发人员的沟通成本,都会构建一份API文档,里面有项目的所有接口的详细信息。 利用文档就能够描述所有的接口信息,但是会有很大的不足

喂喂,要加油的博客 1530

Spring Boot集成Restful Api在线文档接口调试工具 Swagger

Swagger的目标是为REST API 定义一个标准的,与语言无关的接口,使人和计算机在看不到源码或者看不到文档或者不能通过网络流量检测的情况下能发现和理解各种服务的功能。当服务通过Swagger定义,消费者就能与远程的服务互动通过少量的实现逻辑。类似于低级编程接口,Swagger去掉了调用服务时的很多猜测。Swagger 是一个用于生成、描述和调用 RESTful 接口的 Web 服务。通俗的来讲,Swagger 就是将项目中所有(想要暴露的)接口展现在页面上,并且可以进行接口调用和测试的服务。

我这么骄傲的一个人。 2933

Springboot+swagger2的接口文档开发

一、创建一个SpringBoot项目 1. 2. 3. 4. 把web里的web选中,SQL里选择自己需要的,点击next 二、创建各项所需的controller,configure等 1. 项目布局 2. 引入的包 <!-- swagger2所用的包 --> <dependency> ...

208

使用Swagger自动生成API文档~拿来即用!!

Failed to start bean 'documentationPluginsBootStrapper';nested exception is java.lang.NullPointerExcrption

monkey_yuan19的博客 4436

总结之Swagger——SpringBoot集成 Swagger 管理 API 文档

swagger介绍 官网介绍https://swagger.io/docs/specification/about/ Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 Swa...

IManiy的博客 458

Swagger2&常用注解&SpringBoot整合Swagger2 & 创建 Swagger配置类&生产环境下屏蔽Swagger2&修改Swagger2配置类&使用maven package打包测试

Swagger2是一个规范和完整的框架,用于生成、描述、调用和可视化Restful风格的web服务,现在我们使用spring boot 整合它。作用:接口的文档在线自动生成;功能测试;

qq_73126462的博客 1650
上一篇: 26.2.从零开始学springboot-数据校验
下一篇: 27.1.从零开始学springboot-运行原理
码哥说
博客等级 码龄8年 5645粉丝 172原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哥说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值