用 Swagger 实现接口文档
创作时间:
作者:
@小白创作中心
用 Swagger 实现接口文档
引用
CSDN
1.
https://blog.csdn.net/be_racle/article/details/140413932
Swagger是常用的API文档工具,特别是在微服务架构中。本文将详细介绍如何在Spring Boot项目中集成Swagger,包括添加依赖、创建配置类以及使用Swagger注解来丰富接口文档。
用 Swagger 实现接口文档
1.配置 Swagger
1.1 添加 Swagger 依赖
在pom.xml
文件中添加Swagger依赖:
<!--Swagger依赖-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!--Swagger-UI依赖 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
1.2 创建 Swagger 配置类
创建Swagger配置类,完成相关配置项:
package com.example.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
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;
/**
* Swagger 配置类
* 在与 Spring Boot 集成时,放在与 Application.java 同级的目录下
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
/**
* 创建 API 应用
* 本例采用指定扫描的包路径来定义指定要建立 API 的目录
*/
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
.paths(PathSelectors.any())
.build();
}
/**
* 创建该 API 的基本信息(这些基本信息会展现在文档页面中)
* 访问地址:http://项目实际地址/swagger-ui.html
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title(" RESTful APIs")
.description("RESTful APIs")
.termsOfServiceUrl("http://localhost:8080/")
.contact("pipi")
.version("1.0")
.build();
}
}
@Configuration
:让Spring加载该类配置。@EnableSwagger2
:启用Swagger2。createRestApi
函数创建Docket的Bean。apiInfo()
:用来展示该API的基本信息。select()
:返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现。apis(RequestHandlerSelectors.basePackage())
:配置包扫描路径。Swagger会扫描包下所有Controller定义的API,并产生文档内容。如果不想产生API,则使用注解@ApiIgnore
。
2.编写接口文档
在完成上述配置后,即生成了文档,但是这样生成的文档主要针对请求本身,而描述自动根据方法等命名产生,对用户并不友好。所以,通常需要自己增加一些说明以丰富文档内容。可以通过以下注解来增加说明:
@Api
:描述类/接口的主要用途。@ApiOperation
:描述方法用途,给API增加说明。@ApiImplicitParam
:描述方法的参数,给参数增加说明。@ApiImplicitParams
:描述方法的参数(Multi-Params),给参数增加说明。@ApiIgnore
:忽略某类/方法/参数的文档。
具体使用方法:
package com.example.demo.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
@RestController
public class HelloWorldController {
@ApiOperation(value = "hello", notes = "notes")
@RequestMapping("/hello")
public String hello() throws Exception {
return "HelloWorld ,Spring Boot!";
}
// 使用该注解忽略这个 API
@ApiIgnore
@RequestMapping(value = "/ignoreApi")
public String ignoreApi() {
return "HelloWorld ,Spring Boot!";
}
}
完成上述代码后,启动项目,访问http://localhost:8080/swagger-ui.html
就能看到所展示的RESTful API的页面,可以通过单击具体的API测试请求,来查看代码中配置的信息,以及参数的描述信息。
热门推荐
“金玺诏书”:神圣罗马帝国的权利游戏
红薯养胃还是伤胃
电脑启动显示器黑屏的原因和检修
团队协作写文案:从目标设定到成果展示的完整指南
如何调节猫咪争宠的关系(铲屎官的干预与猫咪社交行为)
写小说,本质就是写思维
16+8轻断食减肥的正确方法
债权人清册格式:整理与核对债务关系的必备工具
爱情对人生的意义是什么?
防疫需求减少后无纺布行业产量持续下降 出口竞争力强劲 未来市场趋向集中
黄埔军校,近代军事将领的摇篮,周恩来也曾担任过政治部主任
火光照亮文明:古代照明方式
社会历史时间的两种意识形态
Excel中带有字母的单元格如何进行加减运算?
如何计算和理解基金的复利效应?这些计算在不同投资周期中有何不同?
北欧神话:奥丁的故事
电信云服务器数据安全防护:从加密到合规的全方位保障
新一代《超人》出炉,被誉为完美人选!
如何关闭电脑的人工智能
养生名篇:《二十四节气养生歌诀》之谷雨
岭南膳食八个特色
大豆红蜘蛛识别与防治技术
精确测量5克茶叶的实用方法
盘点国内很受欢迎的10部佳作,部部经典,最高评分9.8
数字内容技术支持驱动效能优化
对话高盛国际CEO:将继续在中国投资,与客户并肩前进
怎样轻断食才能减肥
中国十大特色饺子:从广安鸳鸯饺到北京茴香饺
奥斯卡最佳动画长片《超人总动员》,看超人家庭回归,组团拯救世界的故事!
老人一般起什么名字(老年人起名字的字和号各代表什么)