spring boot项目中使用swagger2

SpringBoot项目中集成Swagger2 io.springfoxspringfox-swagger-ui2.8.0io.springfoxspringfox-swagger22.8.02、创建 SwaggerConfig.javapackage com.riemann.springbootdemo.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import s 阅读详情

在工作中的项目中,我们经常在一开始和前端的合作中写好接口文档,然后前端根据接口文档进行相关的对接工作,但是在后期的维护中,如果改动或者新增接口,可能直接和前端约定好,而不去维护接口文档,这样如果在将项目交付其他人的时候,这个接口文档可能是滞后的,增加了不少麻烦事。

一.介绍一下swagger

简单说明一下,Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务的接口文档

还可以直接调试我们的API。

二.先看效果图

 

 

三.如何使用

首先介绍一下,使用的spring boot+maven构建的web项目,所以我们的步骤是:
第一步,pom文件中引入依赖

 <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.8.0</version>
        </dependency>

第二步,写配置文件

import io.swagger.annotations.Api;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class Swagger2Configuration implements WebMvcConfigurer {

    @Bean
    public Docket createRestApi() {
        // 参数配置
        List<Parameter> pars = new ArrayList<Parameter>();
        ParameterBuilder tokenPar = new ParameterBuilder();
	        tokenPar.name("Authorization").description("user token")
	    	.modelRef(new ModelRef("string")).parameterType("header") // header表示参数放在请求头
	    	.required(false); //header中的Authorization参数非必填,传空也可以
	        pars.add(tokenPar.build());

        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .enable(enable) // 动态决定是否启动swagger
                .select()
                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))//这个代码说明的我们扫描的哪些接口,我这行意思是扫描带@Api注解的接口类
                //也可以这样,说明扫描哪个包下的类 
                // .apis(RequestHandlerSelectors.basePackage("com.xxx.xxx.controller"))
                .paths(PathSelectors.any())
                .build()
                .globalOperationParameters(pars);// 参数配置
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("xxx接口文档")
                .description("xxx相关接口的文档")
                .termsOfServiceUrl("http://www.xxx.com")
                .version("1.0")
                .build();
    }

    /**
      * 静态资源配置
      */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations(
                "classpath:/static/");
        registry.addResourceHandler("/swagger-ui.html").addResourceLocations(
                "classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations(
                "classpath:/META-INF/resources/webjars/");
 
    }

}

第三步:增加相关的注解

import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

@Api(description = "用户接口 ")
@RestController
@RequestMapping("/admin/user")
public class AdminUserController {
    /**
     * 用户登录
     */
    @ApiOperation(value = "登录")
    @ApiImplicitParams({@ApiImplicitParam(name = "userName", value = "用户名", required = true, dataType = "String"),
            @ApiImplicitParam(name = "password", value = "密码", required = true, dataType = "String")})
    @PostMapping("/login")
    @SystemControllerLog(description = "/admin/user/login")
    public ResultVO login(String userName, String password){return null;}

    @ApiOperation(value = "例子")
    public ResultVO<DemoModel> demo(@RequestBody DemoModel demo){return demo;}
}

@Data
public class DemoModel {

    @ApiModelProperty(value = "defaultStr",example="mockStrValue")
    private String strDemo;

    @ApiModelProperty(example="1234343523",required = true)
    private Long longNum;

    @ApiModelProperty(example="111111.111")
    private Double doubleNum;

    @ApiModelProperty(example="2018-12-04T13:46:56.711Z")
    private Date date;
}

 介绍一下相关的注解

@Api: 描述 Controller
@ApiIgnore: 忽略该 Controller,指不对当前类做扫描,忽略该参数,表示不对该参数扫描
@ApiOperation: 描述 Controller类中的 method接口
@ApiParam: 单个参数描述,与 @ApiImplicitParam不同的是,他是写在参数左侧的。如(   @ApiParam(name="username",value="用户名")Stringusername)
@ApiModel: 描述 POJO对象
@ApiProperty: 描述 POJO对象中的属性值
@ApiImplicitParam: 描述单个入参信息
@ApiImplicitParams: 描述多个入参信息
@ApiResponse: 描述单个出参信息
@ApiResponses: 描述多个出参信息
@ApiError: 接口错误所返回的信息

接下就是启动项目,访问http://${host}/${contextPath}/swagger-ui.html这个地址 

激光打印icon-default.png?t=N7T8https://pan.baidu.com/s/1s9d69-wNJPh5tEOMAZsJvg?pwd=yjg4

基于SpringBoot框架使用Swagger2 Swagger是一套基于OpenAPI规范的开源工具,它有助于程序员快速编写最新的API接口文档。在网络上有很多基于SpringBoot框架使用Swagger2的范例说明,我参考了多个文档,发现在基于SpringBoot框架使用Swagger2时有需要注意的环节。下面我以实例演示相关使用。提示:以下是本篇文章正文内容,下面案例可供参考经过多个项目工程的设置对比,我得到以下验证结果版本2.9.2 的swagger2只能在低于版本2.6.0的SpringBoot框架下运行。 阅读详情

相关推荐

SpringBoot整合Swagger2:从入门到精通(亲测可用)

Swagger2是一款基于OpenAPI规范的开源工具集,用于RESTful API的设计、文档化和测试。本文介绍了Swagger2的核心价值、SpringBoot集成步骤和注解使用。通过对比传统文档方式,Swagger2具有实时同步、可视化测试和交互性等优势。集成过程包含依赖配置、SwaggerConfig类编写和UI访问。文章详细解析了控制器层注解如@Api、@ApiOperation的实战应用,以及参数描述注解的使用技巧,帮助开发者快速构建规范的API文档系统。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 2761

Spring Boot整合Swagger2详解

Spring Boot整合Swagger2详解

Charge8的博客 1万+

Diffusion、VAE与GAN:三大生成模型的原理对比与应用场景解析

本文深入解析了Diffusion、VAE与GAN三大生成模型的核心原理与特性。Diffusion模型通过逆向去噪过程实现高质量图像生成,但计算成本较高;VAE擅长学习概率潜空间,训练稳定但图像偏模糊;GAN通过对抗训练生成锐利图像,但存在模式崩溃风险。文章结合实战场景,为图像生成、修复、超分辨率等任务提供了清晰的模型选择指南。

weixin_29063979的博客 343

(一)springboot整合之swagger2(详细)

1.新建springboot项目 2.引入maven依赖 <!--swagger--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version> 2.9.2</version>

weixin_58993861的博客 1万+

RAGFlow 离线部署:解决cl100k_base.tiktoken问题

摘要 本文详细解决了RAGFlow离线部署时tiktoken缓存文件下载失败的问题。通过分析tiktoken库的缓存机制,一次性不改代码解决.

baidu_25691461的博客 830

CrossOver实战:在Mac上流畅运行《梦幻西游》端游与搬砖指南

在跨平台应用开发与系统兼容性领域,如何让为特定操作系统设计的软件在其他平台上运行,是一个经典的技术挑战。其核心原理在于通过兼容层或转译技术,将程序的系统调用和图形接口指令实时转换为目标系统能理解的格式。这项技术的价值在于极大地扩展了硬件设备的软件生态,让用户无需依赖虚拟机或双系统即可无缝使用关键应用。在游戏、专业工具等场景中,这能显著提升工作效率和用户体验。本文以经典端游《梦幻西游》为例,详细解析如何在搭载Apple Silicon或Intel芯片的Mac上,借助CrossOver这一成熟的兼容层方案,构建

weixin_30129025的博客 564

Spring Boot REST H2 Swagger 项目教程

Spring Boot REST H2 Swagger 项目教程 项目介绍 springboot-rest-h2-swagger 是一个示例项目,展示了如何使用 Spring Boot 框架结合 H2 数据库和 Swagger 来构建 RESTful API。该项目旨在帮助开发者快速理解和实践 Spring Boot 的基本功能,包括创建 REST 接口、使用内存数据库 H2 以及通过 Swagg...

gitblog_00483的博客 993

Rust练手:从零手撸RISC-V架构虚拟机(一)(附完整代码)

使用Rust实现一个简单的RISC-V架构的CPU雏形,支持add,sub,addi三个指令。

qq_45983373的博客 2570

记录在Spring-Boot项目中搭建Swagger2出现的错误

第三步,在浏览器搜索http://localhost:8080/swagger-ui.html。.version("1.0")//版本。首先我们需要区分一下用的是Swagger2还是Swagger3,Swagger3指路。.description("演示项目")//描述。.title("演示项目API")// 标题。我这里用的是Swagger2,第一步需要在pom.xml文件里面进行配置。第二步,在SwaggerController类里面写入如下代码。

m0_73303041的博客 1008

KubeVela入门到精通-K8S多集群交付

KubeVela是一个功能强大、易于使用、高度可扩展的应用交付与管理平台。它基于Kubernetes和OAM 技术构建,通过开放应用模型(OAM)来作为顶层的抽像,提供了声明式部署、多集群/混合环境支 持、插件与扩展性、中心化管控以及易于使用与可观测性等特点。

小杨同学的博客 1269

Python爬虫实战:抓取CVE安全漏洞数据库

在网络安全领域,CVE(Common Vulnerabilities and Exposures)是一个非常重要的安全漏洞字典,它为每个安全漏洞提供了唯一的标识符。安全研究人员、开发人员和系统管理员都需要及时了解最新的CVE信息,以便采取相应的防护措施。本文将详细介绍如何使用Python爬虫技术从专业CVE网站抓取漏洞数据,并构建一个完整的CVE信息采集系统。本文详细介绍了如何使用Python爬虫技术从专业CVE网站抓取安全漏洞数据。多种爬虫技术反爬虫策略:User-Agent轮换、代理IP、请求延迟。

2201_76125261的博客 367

Spring Boot 项目中加入swagger2

Spring Boot 整合 Swagger 文章目录Spring Boot 整合 SwaggerSwagger 简介1.为什么要用Swagger2.Swagger简介步骤:1.添加Swagger2的依赖2.添加Swagger配置类3.启动类添加注解4.Controller中添加其余Swagger注解,便于在网页端显示5.启动项目测试Swagger注解详解:1. @Api:用在请求的类上,说明该类的作用2. @ApiOperation:用在请求的方法上,说明方法的作用3.@ApiImplicitParams

L_world_的博客 1471

PyTorch 面试题及详细答案120题(54-70)-- 模型训练与评估

本文介绍了PyTorch模型训练的基本流程和核心概念。主要内容包括: 模型训练基本流程:通过代码示例展示了数据准备、模型定义、损失函数和优化器选择、训练循环(前向传播、反向传播、参数更新)的完整过程,并包含验证集评估的实现。 训练过程中的关键概念: Epoch:完整遍历一次训练集 Batch:将数据分成小批次 Iteration:一个Batch的参数更新过程 三者关系:1 Epoch = N/B Batch = N/B Iteration(N为样本数,B为batch_size) PyTorch数据加载机制:

大剑师兰特的GIS世界 489

Java Spring boot项目添加Swagger2

前言1、什么是Swagger?编写和维护接口文档是每个程序员的职责,根据Swagger2可以快速帮助我们编写最新的API接口文档,再也不用担心开会前仍忙于整理各种资料了,间接提升了团队开发的沟通效率。2、常用注解swagger通过注解表明该接口会生成文档,包括接口名、请求方法、参数、返回信息的等等。@Api:修饰整个类,描述Controller的作用 @ApiOperation:描述一个类的一个方法,或者说一个接口@ApiParam:单个参数描述 @ApiModel:用对象来接收参数。

博哥哥的博客 2048

【PINN物理信息网络】基于PINN物理信息网络求解泊松方程(python)

【PINN物理信息网络】基于PINN物理信息网络求解泊松方程(python)

k8291121的博客 2812

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Spring Boot项目导入Swagger2

1 导入所需jar包 下面展示一些 内联代码片。 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <scope>provided </scope> </dependency> &

weixin_44298044的博客 714

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Spring Boot + Rest + H2 + Swagger 项目教程

Spring Boot + Rest + H2 + Swagger 项目教程 1. 项目的目录结构及介绍 springboot-rest-h2-swagger/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── example/ │ │ │ └── spri...

gitblog_00050的博客 457

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

推荐开源项目:Spring Boot-OAuth2-JWT-Swagger-UI

推荐开源项目:Spring Boot-OAuth2-JWT-Swagger-UI 在当今的Web开发领域,安全和高效成为不可忽视的重点。对于那些寻求构建高安全性、现代化API的开发者而言,【Spring Boot-OAuth2-JWT-Swagger-UI】是一个不可多得的宝藏级开源项目。这个项目结合了四个强大的技术组件:Spring Boot, OAuth 2, JWT, 和 Swagger U...

gitblog_01184的博客 1108

Spring Boot项目中使用Swagger2

Swagger2是一款restful接口文档在线生成和在线接口调试工具,下面是在一个Spring Boot项目中引入Swagger2的简要示例。 一、在pom.xml添加如下maven依赖 <dependency> <groupId>io.springfox</groupId> <arti...

马腾蛟的博客 1421

Spring Boot OAuth2 JWT 和 Swagger UI 项目教程

Spring Boot OAuth2 JWT 和 Swagger UI 项目教程 1. 项目的目录结构及介绍 spring-boot-oauth2-jwt-swagger-ui/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── example/ │ │ │ ...

gitblog_00704的博客 384

Druid和Swagger2在Spring Boot项目中的部署

Druid和swagger2在Spring Boot项目中的部署文档 一. Druid部署: 1.application.yml配置druid连接池(或.properties配置文件); 2.创建配置文件,关联配置; 3.配置监控文件Druid.java; 4.登录地址:http://localhost:端口(如IVR:22020)/druid/index.html 5.根据监控文件中的账号密码登录即可。 参考地址:https://www.cnblogs.com/joker-dj/p/13392738.ht

weixin_44352455的博客 207

基于Spring Boot项目的Swagger2

一:pom文件中引入依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency&g...

lyhhyl0205的博客 381

Spring Boot项目配置Swagger2

原先前后端分离的api文档开启了前后端相互撕逼的对接之路 api更新不及时导致对接失败,以及存在测试不够方便,而swagger则很好的解决了这个问题 在项目中也经常用到swagger2,于是动手记录一下swagger2配置过程,希望能带来一点帮助。 在SpringBoot项目当中使用Swagger主要分为以下几步: 1、SpringBoot-web项目并添加pom.xml依赖 2、编写HelloController,测试成功运行 3、创建一个SwaggerConfig类,配置swagger-ui 流程确实

qq_43719388的博客 831

Spring Boot集成Swagger2及项目示例

相关注解总结: 1.@Api注解可以用来标记当前Controller的功能。 2.@ApiOperation注解用来标记一个方法的作用。 3.@ApiResponses:用在controller的方法上,用于表示一组响应;@ApiResponse:用在 @ApiResponses里边,一般用于表达一个错误的响应信息 4.@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的,作用为:配置spring容器(应用上下文)。用@Bean标注方法等价于XML中配置

qq_43560721的博客 1202

在spring boot项目中集成 Swagger2 文档

前言 官方描述文档地址 :http://springfox.github.io/springfox/docs/current/ 官方api地址 :http://springfox.github.io/springfox/javadoc/current/ 1. 引入maven依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</.

qq_33071429的博客 355
上一篇: 使用反向ssh从外网访问内网主机的方法详解
下一篇: 数据库(MySQL)的调优
冷down
博客等级 码龄10年 11粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值