1. 程式人生 > >【java小程式實戰】swagger2構建restful介面測試

【java小程式實戰】swagger2構建restful介面測試

在開發過程中使用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表示必填。

示例

五、啟動專案,訪問http://localhost:8081/swagger-ui.html#/ 該地址就可以出現如圖顯示的頁面。

示例

這篇文章的 PRESS.one 簽名:
https://press.one/file/v?s=c577fc8031bbcbb87d50efe53ef7ea4726d437e1c2dcdeba84758506cbdbe08f2833b9077d5df3b86ff9c0f8593790c7f18b0c7d51fe3e4bfcc0ff5b26ff64e40&h=2f00ac7b97018b1c2de7d68840150b86d6714bff45129573114b1cf1da26a28a&a=e7beb8100dc2b02c24a0dde79d983cd3fca01fd0&f=P1&v=2
在這裡插入圖片描述