1. 程式人生 > >Spring Boot整合Swagger優雅的生成Restful風格的API

Spring Boot整合Swagger優雅的生成Restful風格的API

一、自動生成API工具

1、Swagger:是一個規範和完整的框架,用於生成、描述、呼叫和視覺化 RESTful 風格的 Web 服務。可以生成一個具有互動性的API控制檯,開發者可以用來快速學習和嘗試API。支援多種語言,如:Scala、Java、Ruby、PHP、JavaScript等;

2、i /o docs:一種Restful風格的互動式文件系統;

3、Dexy:一款非常靈活的文件工具;

4、自己編寫外掛生成Api文件。

二、在SpringBoot中使用Swagger

1、引入依賴

        <!-- swagger -->
        <dependency>
<groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.2.2</version>
</dependency>
        <!-- swagger -->

2、新建Swagger配置類

public class SwaggerConfig {

	
	@Bean
	public Docket createRestApi() {
		return new Docket(DocumentationType.SWAGGER_2)
				.apiInfo(apiInfo())
				.select()
				.apis(RequestHandlerSelectors.basePackage("com.william.springboot.springbootshiro.controller"))//掃描的包名
				.paths(PathSelectors.any())
				.build();
	}
	
	private ApiInfo apiInfo() {
		return new ApiInfoBuilder()
				.title("springboot利用swagger生成api文件")
				.description("簡單優雅的restfun風格,自動生成api文件")
				.termsOfServiceUrl("http://localhost:8080/swagger-ui.html")
				.version("1.0")
				.build();
	}
}

3、編寫介面入口

@Api(value="使用者相關介面API",tags="使用者介面")
@RestController
@RequestMapping("/user")
public class UserInfoController {

	
	@ApiOperation(value = "查詢使用者根據ID", notes = "查詢使用者",produces = MediaType.APPLICATION_JSON_VALUE)
	@ApiImplicitParam(name = "userid", value = "userid", required = true,paramType="
path", dataType = "String") @RequestMapping(value="/get/{userid}",method=RequestMethod.GET) public String getUserById(@PathVariable("userid") String userid) { System.out.println("-----"+userid); /** * dosomework */ System.out.println("---"+userid); return "William"; } @ApiOperation(value = "新增使用者", notes = "儲存") @ApiImplicitParam(name = "userInfo", value = "userInfo", required = true, dataType = "UserInfo") @PostMapping("/save") public String addUser(@RequestBody UserInfo userInfo) { /** * dosomework */ return "success"; } }

4、訪問API自動文件

地址:專案路徑/swagger-ui.html#/


至此,你的專案就成功集成了Swagger,大大方便了自己寫API文件的勞動量,方便了前端呼叫介面聯調。