【java小程式實戰】swagger2構建restful介面測試
阿新 • • 發佈:2018-11-30
在開發過程中使用swagger2介面進行測試有以下幾個好處:
1、可以生成文件形式的api並提供個不同的安卓、IOS、前端開發團隊。
2、方便後端開發人員進行功能的自測,也方便領導查閱任務量。
3、無需過多冗餘的word文件。
下面直接開始配置:
一、pom依賴包
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.4.0</version> </dependency>
二、建立一個swagger2的java類
@Configuration
@EnableSwagger2
public class Swagger2 {
/**
* swagger2 的配置檔案,這裡可以配置swagger2 的一些基本內容,比如掃描的包等等。
* @return
*/
@Bean
public Docket createRestApi(){
//為swagger新增header 引數可供輸入
ParameterBuilder userTokenHeader = new ParameterBuilder();
ParameterBuilder userIdHeader = new ParameterBuilder();
List<Parameter> pars = new ArrayList<>();
userTokenHeader.name("headerUserToken").description("userToken")
.modelRef(new ModelRef("string")).parameterType("header")
.required(false).build();
userIdHeader.name("headerUserId").description("userId")
.modelRef(new ModelRef("string")).parameterType("header")
.required(false).build();
pars.add(userTokenHeader.build());
pars.add(userIdHeader.build());
//上面這部分程式碼可以省去,直接return。 new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
// .apis(RequestHandlerSelectors.basePackage("com.imooc.controller"))
// .paths(PathSelectors.any()).build();
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
.apis(RequestHandlerSelectors.basePackage("com.imooc.controller"))
.paths(PathSelectors.any()).build()
.globalOperationParameters(pars);
}
/**
* 構建API 文件的資訊
* @return
*/
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
//設定頁面標題
.title("使用swagger2 構建短視訊後端api介面文件")
//設定聯絡人
.contact(new Contact("taojin1122","www.csdn.net"," [email protected]"))
//描述
.description("歡迎訪問短視訊介面文件,這裡是描述資訊")
//定義版本號
.version("1.0").build();
}
}
三、在controller中添加註解:
1、在類上新增@Api 註解,有value、tags、description等屬性。
2、在方法上新增@ApiOperation 註解,有value、notes等屬性。
3、也可以在引數中新增@ApiParam 註解。
@ApiParam(required = true,name = “sysDictType”, value = “資料字典型別”)
四,在實體類中添加註解:
1、在類上新增@ApiModel註解,可以新增value、description屬性
2、在欄位上新增@ApiModelProperty 註解。
hideen 屬性:為true表示隱藏該欄位。
value屬性:欄位的值。
name屬性:欄位名。
example屬性:示例。
required屬性:為true表示必填。