Swagger(一) SpringBoot整合Swagger2簡單的例子
阿新 • • 發佈:2019-02-17
Swagger 是一個規範和完整的框架,用於生成、描述、呼叫和視覺化 RESTful 風格的 Web 服務。總體目標是使客戶端和檔案系統作為伺服器以同樣的速度來更新。檔案的方法,引數和模型緊密整合到伺服器端的程式碼,允許API來始終保持同步。Swagger 讓部署管理和使用功能強大的API從未如此簡單。
這裡我給大家帶來一個簡單的整合DEMO 先來看專案結構
下面是基本的步驟
一.新增MAVEN依賴
<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> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.13</version> </dependency>
二.編寫Swagger配置類
@Configuration @EnableSwagger2 public class Swaggers { @Bean public Docket swaggerSpringMvcPlugin() { ApiInfo apiInfo = new ApiInfo("sample of springboot", "sample of springboot", null, null, null, null, null); Docket docket = new Docket(DocumentationType.SWAGGER_2).select().paths(regex("/user/.*")).build() .apiInfo(apiInfo).useDefaultResponseMessages(false); return docket; } /*private ApiInfo apiInfo() { return new ApiInfoBuilder().title("測試API") .description("樊亞的測試API1") .version("1.0.0") .build(); }*/ /* @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.didispace.web")) .paths(regex("/user/.*")) .build(); } */ }
當然也可以用鏈式程式設計的方法實現,這裡我使用的是NEW
三.編寫Controller
@RestController @RequestMapping("/user") @Api(value = "Shop") public class SpringBootController { @ApiOperation(value = "獲取helloWorld", notes = "簡單SpringMVC請求") @RequestMapping("/") String home() { return "HELLO WORLD"; } @ApiOperation(value = "獲得A+B", notes = "根據url的classNo和url的studentName獲得請求引數的字串相加,RestFul風格的請求") @ApiImplicitParams({@ApiImplicitParam(name = "classNo", value = "班級編號", required = true, dataType = "String"), }) @RequestMapping(value = "/class/{classNo}/to/{studentName}", method = RequestMethod.GET) String world(@PathVariable("classNo") String classNo, @PathVariable("studentName") String studentName) { return classNo + " " + studentName; } }
四.編寫Application載入類
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
Swagger會預設把所有Controller中的RequestMapping方法都生成API出來,實際上我們一般只需要標準介面的(像返回頁面的那種Controller方法我們並不需要),所有你可以按下面的方法來設定要生成API的方法的要求。
檢視生成好的API
附上Swagger相關的註解:
最常用的5個註解
@Api:修飾整個類,描述Controller的作用
@ApiOperation:描述一個類的一個方法,或者說一個介面
@ApiParam:單個引數描述
@ApiModel:用物件來接收引數
@ApiProperty:用物件接收引數時,描述物件的一個欄位
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
其它若干
@ApiResponse:HTTP響應其中1個描述
@ApiResponses:HTTP響應整體描述
@ApiIgnore:使用該註解忽略這個API
@ApiClass
@ApiError
@ApiErrors
@ApiParamImplicit
@ApiParamsImplicit
這一期主要為了先把功能跑起來,下一期詳解內部內容。
專案地址 :https://github.com/FANYA/Learn.git
參考部落格:http://www.jianshu.com/p/8033ef83a8ed
http://blog.csdn.net/catoop/article/details/50668896