用 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测试请求,来查看代码中配置的信息,以及参数的描述信息。
热门推荐
夫妻之间能否构成民间借贷关系的主体吗?
吴茱萸碱(EVO)药理作用多样 在医药领域应用价值高
绣球花适合什么气候?详解其生长习性和养护要点
AI推动生命科学发展:智能蛋白计算与智能药物发现技术的继承与革新
跨界创新:青年科学家的AI与生命科学探索之路
告别式祭文写作指南:条列式大纲帮你表达真切情感
家庭关系:如何建立良好的沟通与互动
全谷物主食:抗炎新选择,健康新潮流
「压缩即智能」得到实验验证,无需预训练和大量数据就能解决ARC-AGI问题
如何认定首套房的资格?这种认定标准有哪些具体的条件和限制?
《思考致富》:拿破仑·希尔的财富智慧
重庆周边一日游景点推荐
"po文"是什么意思的缩写?
法院拍卖房怎么拍卖?全流程详解
汽车重量与油耗的关系:从传统燃油车到新能源汽车的技术革新
Science:衰老为何会导致癌症?慢性炎症是关键,抗炎药物可逆转衰老的促癌作用
宜昌出发到神农架三日游
初期产检要做哪些必要的检查?
考试后的反思引导!带孩子从错误中学习的4个关键
手机欠费被停机仍收费,运营商构成欺诈吗?
手机卡停机了会有什么影响?手机卡停机了还会产生费用吗?
5部古埃及题材纪录片,揭露金字塔背后的秘密
内幕交易巨亏500万,被罚460万!光大证券投行前高管,把证监会告了...
防止产品出现质量缺陷的4个步骤
车标中一个字母B代表的是什么品牌?
超“极易过敏值”24倍,过敏者激增,成都花粉浓度为何“爆表”?
电动自行车新国标物联网要求,怎么构建一个支撑千万级设备连接的物联网平台架构
吃饭的时候看手机有危害吗?
项目管理案例怎么找
如何正确搭建 ESP-IDF 开发环境