依賴
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version></dependency><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version></dependency>
配置類
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.ApiInfo;import springfox.documentation.service.Contact;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;/** * Swagger的配置類 * @author 陳加兵 * */@Configurationpublic class SwaggerConfig{ /** * 創建用戶API文檔 * @return */ @Bean public Docket createRestUserApi(){ return new Docket(DocumentationType.SWAGGER_2) .groupName("user") .apiInfo(apiInfo()) //api的信息 .select() .apis(RequestHandlerSelectors .basePackage("cn.tedu.mycat.controller")) //添加包掃描 .paths(PathSelectors.any()).build(); } /** * 創建API信息 */ private ApiInfo apiInfo(){ return new ApiInfoBuilder() .title("api文檔的標題") //標題 .description("api文檔的描述") //描述 .contact( //添加開發者的一些信息 new Contact("愛撒謊的男孩", "https://chenjiabing666.github.io", "[email protected]")).version("1.0").build(); }}
啟動類
在springBoot的啟動類上添加一個注解即可配置成功: @EnableSwagger2
訪問api的路徑
http://ip/projectName/swagger-ui.html
注解說明
@Api
屬性名稱 | 備注 | 默認值 |
---|---|---|
value | url的路徑值 | |
tags | 如果設置這個值、value的值會被覆蓋 | |
description | 對api資源的描述 | |
basePath | 基本路徑可以不配置 | |
position | 如果配置多個Api 想改變顯示的順序位置 | |
produces | For example, “application/json, application/xml” | |
consumes | For example, “application/json, application/xml” | |
protocols | Possible values: http, https, ws, wss. | |
authorizations | 高級特性認證時配置 | |
hidden | 配置為true 將在文檔中隱藏 |
@ApiOperation
value | url的路徑值 | |
---|---|---|
tags | 如果設置這個值、value的值會被覆蓋 | |
notes | 對api資源的描述 | |
response | 返回的對象,在文檔中點擊Model可以獲取該配置的內容 | |
responseContainer | 這些對象是有效的 “List”, “Set” or “Map”.,其他無效 | |
responseReference | 可以不配置 | |
httpMethod | 可以接受 “GET”, “HEAD”, “POST”, “PUT”, “DELETE”, “OPTIONS” and “PATCH” | |
position | 如果配置多個Api 想改變顯示的順序位置 | |
produces | 同 Api中的定義 | |
consumes | 同 Api中的定義 | |
protocols | 同 Api中的定義 | |
authorizations | 同 Api中的定義 | |
hidden | 是否隱藏,true 或者false ,這個可以隱藏后臺接口 | |
code | http的狀態碼 默認 200 | |
extensions | 擴展屬性 |
@ApiImplicitParams
@ApiImplicitParam
用在 @ApiImplicitParams 注解中,也可以單獨使用,說明一個請求參數的各個方面
詳細的屬性使用說明如下:
paramType屬性的詳細說明
@ApiOperation(value="根據用戶Id獲取用戶信息",response=User.class,hidden=false) @ApiImplicitParams({ @ApiImplicitParam(paramType = "path", name = "id", dataType="Integer", required = false, value = "用戶的id", defaultValue = "1") }) @GetMapping("/user/get/{id}") public Object getUser(@PathVariable("id")Integer id){ return new User(id, "陳加兵"); }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。
新聞熱點
疑難解答
圖片精選