當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring boot中使用Swagger2
生活随笔
收集整理的這篇文章主要介紹了
Spring boot中使用Swagger2
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
問題
最近需要做接口開發(fā),給客戶端們調(diào)用,但是我又不想寫文檔,聽說REST風(fēng)格的接口都在用Swagger做IDL(Interface description language),中文就是接口描述語言,簡單的說就是給調(diào)用方的開發(fā)人員看的。具體可以看危機(jī)百科:接口描述語言。
Maven
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.8.0</version><scope>compile</scope> </dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.8.0</version><scope>compile</scope> </dependency>Gradle
... ext {springfoxSwagger2Version = "2.8.0" } ... dependencies{implementation "io.springfox:springfox-swagger2:${springfoxSwagger2Version}"implementation "io.springfox:springfox-swagger-ui:${springfoxSwagger2Version}" } ...主配置
package com.xxx.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2;import static springfox.documentation.builders.PathSelectors.regex;@Configuration @EnableSwagger2 public class SwaggerConfig extends WebMvcConfigurationSupport {@Beanpublic Docket businessApi() {return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.basePackage("com.hngytobacco.budget.controller")).paths(regex("^/businesses.*")).build().apiInfo(metaData());}private ApiInfo metaData() {return new ApiInfoBuilder().title("Budget").description("REST API for budget").version("0.0.1").contact(new Contact("YaLin", "https://my.oschina.net/fxtxz2", "zhangyl@xxx.com.cn")).build();}@Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");} }然后,啟動(dòng)spring boot,訪問http://localhost:8080/swagger-ui.html就可以了,效果如下:
以上就是基本的Swaager配置。
還有關(guān)于controller和Java bean的配置:
@RestController @RequestMapping(value = "/businesses") @Api(value = "業(yè)務(wù)實(shí)例", description = "操作業(yè)務(wù)實(shí)例") public class BusinessController { ... @ApiOperation(value = "根據(jù)登錄用戶獲取業(yè)務(wù)實(shí)例列表", response = Iterable.class)@ApiResponses(value = {@ApiResponse(code = 200, message = "成功查找到業(yè)務(wù)實(shí)例列表"),@ApiResponse(code = 404, message = "用戶沒有角色"),@ApiResponse(code = 401, message = "沒有權(quán)限")})@GetMapping("/list/{username}")public ResponseEntity<List<BusinessVO>> getBusinessByUser(...效果:
java bean的配置:
import io.swagger.annotations.ApiModelProperty;/** 業(yè)務(wù)VO */ public class BusinessVO {@ApiModelProperty(notes = "業(yè)務(wù)實(shí)例主鍵")private long id;/** 業(yè)務(wù)名稱 */@ApiModelProperty(notes = "業(yè)務(wù)實(shí)例名稱")private String name;/** 業(yè)務(wù)模板id */@ApiModelProperty(notes = "業(yè)務(wù)實(shí)例對(duì)應(yīng)的業(yè)務(wù)模板id")private long templateId;public long getId() {return id;}public void setId(long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public long getTemplateId() {return templateId;}public void setTemplateId(long templateId) {this.templateId = templateId;}}效果如下:
參考:
SPRING BOOT RESTFUL API DOCUMENTATION WITH SWAGGER 2
轉(zhuǎn)載于:https://my.oschina.net/fxtxz2/blog/2048738
總結(jié)
以上是生活随笔為你收集整理的Spring boot中使用Swagger2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: out对象的使用
- 下一篇: gradle idea java ssm