一锅知,什么是Swagger
Swagger是一個(gè)規(guī)范和完整的框架植榕,用于生成,描述庇配,調(diào)用和可視化 RESTful風(fēng)格的WEB服務(wù)斩跌。總體目標(biāo)是使客戶端和文件系統(tǒng)作為服務(wù)器以同樣的速度來(lái)更新捞慌。文件的方法耀鸦,參數(shù)和模型緊密集成到服務(wù)器端的代碼,允許API來(lái)始終保持同步啸澡。
Swagger的作用:
1袖订,接口的文檔在線自動(dòng)生成。
2嗅虏,功能測(cè)試洛姑。
二,在Maven中添加依賴
<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>
三皮服,創(chuàng)建Swagger2的配置類
/**
* Swagger2配置類
* 在與spring boot 集成時(shí)楞艾,放在與Application.java同級(jí)的目錄下
* 通過(guò)@Configuration注解,讓spring來(lái)加載該配置
* 再通過(guò)@EnableSwagger2注解來(lái)啟動(dòng)Swagger2
* @author sr
* 2018-1-12
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Value("${my.swagger2.enable}")
private boolean enable;
private static final StringbasePackage ="com.ulearning.ulms";
/**
* 創(chuàng)建API應(yīng)用
* appinfo()增加API相關(guān)信息
* 通過(guò)select()函數(shù)返回一個(gè)ApiSelectorBuilder實(shí)例龄广,用來(lái)控制那些接口暴露給Swagger來(lái)展現(xiàn)
* 本例采用置頂掃描的包路徑來(lái)定義指定要建立API的目錄
* @return
*/
@Bean
public DocketuserApi() {
Predicate swaggerSelector = RequestHandlerSelectors
.withMethodAnnotation(ApiOperation.class);
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage(basePackage))
.apis(swaggerSelector).paths(PathSelectors.any()).build()
.enable(enable);
}
/**
* 創(chuàng)建API的基本信息(這些基本信息會(huì)展示在文檔頁(yè)面中)
* 訪問(wèn)地址:http://項(xiàng)目實(shí)際地址/swagger-ui.html
* @return
*/
private ApiInfoapiInfo() {
return new ApiInfoBuilder().title("直播平臺(tái)")
.description("直播平臺(tái)文檔,行業(yè)開(kāi)放接入")
.license("QA").licenseUrl("qa.html")
.contact(new Contact("sr", "", ""))
.version("1.0.1").build();
}
}
Swagger2的注解使用:
@Api:用在類上硫眯,說(shuō)明該類的作用。
@ApiOperation:注解來(lái)給API增加方法說(shuō)明择同。
@ApiImplicitParams:用在方法上包含一組參數(shù)說(shuō)明两入。
@ApiImplicitParam:用來(lái)注解來(lái)給方法入?yún)⒃黾诱f(shuō)明。
@ApiResponses: 用于表示一組響應(yīng)敲才。
@ApiResponse: 用在@ApiResponses中谆刨,一般用于表達(dá)一個(gè)錯(cuò)誤的響應(yīng)信息。
-
code:數(shù)字归斤,例如400
message:信息,例如"請(qǐng)求參數(shù)沒(méi)填好"
response:拋出異常的類
@ApiModel:描述一個(gè)Model的信息(一般用在請(qǐng)求參數(shù)無(wú)法使用@ApiImplicitParam注解進(jìn)行描述的時(shí)候)
* @ApiModelProperty:描述一個(gè)model的屬性