Java使用Swagger接口框架方法详解

 更新时间:2023年05月17日 10:44:26   作者:shenzhenNBA  
这篇文章主要介绍了Java使用Swagger接口框架方法,Swagger是一个方便我们更好的编写API文档的框架,而且Swagger可以模拟http请求调用,感兴趣的同学可以参考下文

一,Swagger功能是什么呢

简单说就是生产API接口文档,同时提供在线调试项目API的接口的功能,可以说对推进项目进度非常有利,尤其对前后台分离的情况更加有用;

二,如何在Java项目中使用Swagger功能

(欢迎使用推荐的方式)

1,过去的Swagger使用方式

——不推荐使用

(1)引入依赖 jar 包,如下:

<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.9.2</version> 
</dependency>

(2)配置Swagger2Config.java

 
package com.qyh.pro01.config;
import java.io.Serializable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
 * Swagger配置类
 */
@Configuration
@EnableSwagger2 
public class Swagger2Config implements Serializable {
	private static final long serialVersionUID = 202002161810010L;
	@Bean
	public Docket api() {
		return new Docket(DocumentationType.SWAGGER_2)
			.apiInfo(apiInfo())
			.select()
			.apis(RequestHandlerSelectors.basePackage("com.xxx.yyy.controller"))
			.apis(Swagger2Config.basePackage("com.xxx.yyy.controller"))
			.paths(PathSelectors.any())
			.build();			
	}
	private ApiInfo apiInfo() {
		return new ApiInfoBuilder()
				.title("Swagger2-api文档")
				.description("Swagger2接口教程")
				.termsOfServiceUrl("http://www.baidu.com")
				.version("1.0.0")
				.contact(new Contact("shenzhenNBA", 
						"http://www.xxx.com", 
						"qyhzqw@163.com"))
				.build();
	}
}

还有些可能需要springMVC配置文件排除放行Swagger相关的html,css,JS和图片(jpg,png,gif等),然后在项目使用,例如:http://localhost:8080/swagger-ui.html(另一种调试方式是http://localhost:8080/doc.html

2,Springdoc方式使用Swagger功能

——推荐使用

过去的方式也许还是有点繁琐,是时候换Springdoc方式使用Swagger功能了,当然这个也是基于Swagger2.x实现,它完美支持SpringBoot 1.x/2.x,Swagger-ui也比较好看,其它次要的暂时忽略;然后在项目中增加依赖 jar 包,

<dependency>
	<groupId>org.springdoc</groupId>
	<artifactId>springdoc-openapi-ui</artifactId>
	<version>1.2.30</version> 
	<!-- 版本可自行选择最新版本-->
</dependency

在下载这些 JAR包时,如果是从国外官方的可能耗时间比较久,可以修改maven仓库的配置文件,修改如下:

<!-- 阿里的公开maven库,在 mirrors标签的内部追(增)加如下内容 -->
<mirrors>
	<mirror>  
	   <id>alimaven</id>  
	   <name>aliyun maven</name>  
	   <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
	   <mirrorOf>central</mirrorOf>          
	</mirror>
</mirrors>

从国内的ali的镜像仓库中下载,速度要快蛮多;记住,然后什么都不用做了,启动项目,直接可根据项目访问Swagger功能了,访问URL格式:http://ip:port/swagger-ui.html

例如我的:http://127.0.0.1/swagger-ui.html 很直观看到API接口,同时通过 “try it out” 可直接在线调试了,非常方便快速... 看看一下部分截图:

三,后记

basic-error-controller 这些API是自动生成的,可以不理,仅关注自己开发的API接口即可,总之,使用springdoc这种方式使用swagger功能,非常方便,简单,快速,可以快速查看项目各个API文档,同时非常方便在线调试,尤其是对前后端分离的项目更加有利推进项目进度,可能有些考虑不周

到此这篇关于Java使用Swagger接口框架方法详解的文章就介绍到这了,更多相关Java使用Swagger内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot项目中获取resources下静态文件时遇到的坑及解决

    SpringBoot项目中获取resources下静态文件时遇到的坑及解决

    文章总结:在项目中使用静态图片时,遇到jar包部署到linux服务器报错的问题,解决方法包括将图片上传到服务器指定文件夹或使用ClassPathResource读取,前者需要维护,后者更方便
    2024-11-11
  • java UUID&雪花算法生成和使用场景详解

    java UUID&雪花算法生成和使用场景详解

    UUID和雪花算法都是用于生成唯一标识符的有效工具,它们各有优势:UUID简单易用,但长度较长,适用于分布式系统;雪花算法生成的ID较短且有序,适用于需要保证顺序的场景,在选择算法时,需要考虑系统架构、性能需求和顺序需求等因素
    2025-01-01
  • Java连接mysql数据库代码实例程序

    Java连接mysql数据库代码实例程序

    这篇文章主要介绍了java连接mysql数据库代码实例程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 关于Spring多数据源TransactionManager冲突的解决方案

    关于Spring多数据源TransactionManager冲突的解决方案

    这篇文章主要介绍了关于Spring多数据源TransactionManager冲突的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Java世界时区自动计算及时间生成方法详解

    Java世界时区自动计算及时间生成方法详解

    这篇文章主要为大家详细介绍了Java中世界时区自动计算及时间生成的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-12-12
  • Spring事件监听机制之@EventListener实现方式详解

    Spring事件监听机制之@EventListener实现方式详解

    这篇文章主要介绍了Spring事件监听机制之@EventListener实现方式详解,ApplicationContext的refresh方法还是初始化了SimpleApplicationEventMulticaster,发送事件式还是先获取ResolvableType类型,再获取发送监听列表,需要的朋友可以参考下
    2023-12-12
  • Java双重for循环的优化示例

    Java双重for循环的优化示例

    在工作中,经常性的会出现在两张表中查找相同ID的数据,许多开发者会使用两层for循环嵌套,本文主要介绍了Java双重for循环的优化示例,感兴趣的可以了解一下
    2025-06-06
  • Java后端实现数据加密的多方案对比分析及实践

    Java后端实现数据加密的多方案对比分析及实践

    随着互联网业务对用户隐私和数据安全的要求不断提升,后端系统中对敏感数据的加密保护已成为必备需求,本文将以方案对比分析的结构,为后端开发者提供清晰的选型思路
    2025-07-07
  • springboot实现返回视图而不是string的方法

    springboot实现返回视图而不是string的方法

    这篇文章主要介绍了springboot实现返回视图而不是string的方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • java中哈希表及其应用详解

    java中哈希表及其应用详解

    Java中哈希表(Hashtable)是如何实现的呢?Hashtable中有一个内部类Entry,用来保存单元数据,我们用来构建哈希表的每一个数据是Entry的一个实例。假设我们保存下面一组数据,第一列作为key, 第二列作为value。
    2015-06-06

最新评论