SpringBoot整合Swagger2的好處就是接口文檔方便進行維護
1.加入依賴包,pom.xml:
<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.增加個配置類:
package com.cxh.springboot_elasticsearch.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.pathMapping("/")
.select()
.apis(RequestHandlerSelectors.basePackage("com.cxh.springboot_elasticsearch.controller"))//掃描接口的包
.paths(PathSelectors.any())
.build().apiInfo(new ApiInfoBuilder()
.title("SpringBoot整合Swagger")
.description("SpringBoot整合Swagger赡盘,詳細信息......")
.version("9.0")
.build());
}
}
通過@EnableSwagger2注解啟用Swagger2玄窝,然后配置一個Docket Bean旺遮,這個Bean中饼酿,配置映射路徑和要掃描的接口的位置,在apiInfo中实苞,主要配置一下Swagger2文檔網(wǎng)站的信息吉拳,例如網(wǎng)站的title质帅,網(wǎng)站的描述,聯(lián)系人的信息留攒,使用的協(xié)議等等煤惩,這樣Swagger2就配置成功了。
3.在需要的類炼邀,方法上加上Swagger2的注解進行說明:
import com.cxh.springboot_elasticsearch.entity.Book;
import com.cxh.springboot_elasticsearch.service.BookService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Optional;
@RestController
@Api(tags = "es操作管理接口")
public class ElasticController {
@Autowired
private BookService bookService;
@RequestMapping("/book/{id}")
@ApiOperation("查詢書的接口")
@ApiImplicitParam(name = "id", value = "書本id", required = true)
public Book getBookById(@PathVariable String id){
Optional<Book> opt =bookService.findById(id);
Book book=opt.get();
System.out.println(book);
return book;
}
}
@Api注解可以用來標記當前Controller的功能魄揉。
@ApiOperation注解用來標記一個方法的作用。
@ApiImplicitParam注解用來描述一個參數(shù)拭宁,可以配置參數(shù)的中文含義洛退,也可以給參數(shù)設(shè)置默認值瓣俯,這樣在接口測試的時候可以避免手動輸入。
如果有多個參數(shù)兵怯,則需要使用多個@ApiImplicitParam注解來描述彩匕,多個@ApiImplicitParam注解需要放在一個@ApiImplicitParams注解中。
具體的可以看Swagger2的api媒区。
- 啟動項目:瀏覽器打開地址:http://localhost:8080/swagger-ui.html
image.png