使用Swagger生成Spring Boot微服务API文档

栏目: 服务器 · 发布时间: 7年前

内容简介:Swagger是一个开源框架,可以在将你的Restful API文档化,供其他访问者浏览,包括应该提交的JSON格式,获得响应JSON格式等。首先在Spring Boot的pom.xml中引入swagger2包支持:springfox是产生API文档,而swagger-ui 则是RestAPI的界面。

Swagger是一个开源框架,可以在将你的Restful API文档化,供其他访问者浏览,包括应该提交的JSON格式,获得响应JSON格式等。

首先在Spring Boot的pom.xml中引入swagger2包支持:

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
<scope>compile</scope>
</dependency>

springfox是产生API文档,而swagger-ui 则是RestAPI的界面。

创建一个RestController ,定义API:


@RestController
@Api(value="/customer",description="Customer Profile",produces ="application/json")
@RequestMapping(
"/customer")
public class CustomerController {
@ApiOperation(value=
"get customer",response=Customer.class)
@ApiResponses(value={
@ApiResponse(code=200,message=
"Customer Details Retrieved",response=Customer.class),
@ApiResponse(code=500,message=
"Internal Server Error"),
@ApiResponse(code=404,message=
"Customer not found")
})
@RequestMapping(value=
"/getCustomer",method=RequestMethod.GET,produces="application/json")
public ResponseEntity<Customer> getCustomer(){
Customer cust = new Customer();
cust.setName(
"Sagar");
cust.setId(1234);
cust.setAddress(
"Pune");
return new ResponseEntity<Customer>(cust, HttpStatus.OK);
}
}

这里特殊的地方就是多了很多新的注释:

1. @Api 定义这个控制器是什么

2. @ApiOperation 定义请求方法

3. @ApiResponses 定义方法可能返回的所有响应。

下面需要激活Swagger的配置:


@Configuration
@EnableSwagger2
public class SwaggerConfig{
@Bean
public Docket produceApi(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.hotel.main.controllers"))
.paths(paths())
.build();
}
// Describe your apis
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title(
"Hotel Management Rest APIs")
.description(
"This page lists all the rest apis for Hotel Management App.")
.version(
"1.0-SNAPSHOT")
.build();
}
// Only select apis that matches the given Predicates.
private Predicate<String> paths() {
// Match all paths except /error
return Predicates.and(
PathSelectors.regex(
"/customer.*"),
Predicates.not(PathSelectors.regex(
"/error.*"))
;
}
}

@EnableSwagger2 是在应用启动时激活swagger ;

Docket - 它是一个构建器,在swagger-springmvc框架中充当主要接口。它的构建字段如下:

apiInfo - 它返回一个ApiInfoBuilder,它指定Rest API的标题,描述等。

select()- 它返回ApiSelectorBuilder的一个实例 ,它提供了一种控制Swagger公开的端点的方法。

apis - 提供RequestHandlerSelectors,它指定basepackage来扫描所有控制器。

paths() - 提供API的映射端点。

最后是启动类:


@SpringBootApplication
@EnableSwagger2
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

UCD火花集

UCD火花集

UCDChina / 人民邮电出版社 / 2009 / 25.00元

本书收集了UCDChina上线以来推出的13个话题,内容涵盖了产品设计的全部流程,按顺序集结到第一到第十三章中,讨论了如何研究用户、如何将用户需求应用到产品设计中、如何传达和协作。在第十四章,几位设计师分享了生活中的UE故事。第十五章,列举了一些实例和实践者的观点。本书适合有一定工作经验,从事产品设计、产品策划、交互设计、视觉设计、用户研究、前端开发、网站运营,以及所有与互联网有关的从业人员阅读。一起来看看 《UCD火花集》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具