Swagger自定義響應
一劍寒霜十四州
發(fā)布于 云南 2021-03-14 · 7.6w瀏覽 4贊

一、全局配置

1.主要代碼如下,可自行百度進行相關的配置修改,另外pom依賴也自行百度即可:

@Configuration

@EnableSwagger2

@EnableKnife4j

@Import(BeanValidatorPluginsConfiguration.class)

public class SwaggerConfiguration {

   @Bean

   public Docket createRestApi() {

       return new Docket(DocumentationType.SWAGGER_2)

               .apiInfo(groupApiInfo())

               .select()

               //包路徑

               .apis(RequestHandlerSelectors.basePackage("XXXXX"))

               //過濾的接口

               .paths(PathSelectors.any())

               .build()

               .securitySchemes(security())

               .securityContexts(securityContexts());

   }

   private ApiInfo groupApiInfo(){

       return new ApiInfoBuilder()

               .title("彩龍社區(qū)API接口")

               .description("接口列表")

               .termsOfServiceUrl("http://www.hexiangwang.cn/")

               .contact("彩龍社區(qū)項目組")

               .version("1.0")

               .build();

   }

   List<SecurityReference> defaultAuth() {

       AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");

       AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];

       authorizationScopes[0] = authorizationScope;

       List<SecurityReference> securityReferences=new ArrayList<>();

       securityReferences.add(new SecurityReference(Consts.TOKEN_KEY, authorizationScopes));

       securityReferences.add(new SecurityReference(Consts.FRONT_TOKEN_KEY, authorizationScopes));

       return securityReferences;

   }

   private List<SecurityContext> securityContexts() {

       List<SecurityContext> securityContexts=new ArrayList<>();

       securityContexts.add(

               SecurityContext.builder()

                       .securityReferences(defaultAuth())

                       .forPaths(PathSelectors.any())

                       .build());

       return securityContexts;

   }

   private List<ApiKey> security() {

       List<ApiKey> apiKeyList= new ArrayList();

       apiKeyList.add(new ApiKey(Consts.TOKEN_KEY, Consts.TOKEN_KEY, "header"));

       apiKeyList.add(new ApiKey(Consts.FRONT_TOKEN_KEY, Consts.FRONT_TOKEN_KEY, "header"));

       return apiKeyList;

   }

}

二、定義通用返回結構:

1.定義的類可接收泛型

public class R<T>

2.定義如下幾個常量作為返回code碼,信息,以及數(shù)據(jù)(T泛型可返回各種類型數(shù)據(jù))

@ApiModelProperty(value = "狀態(tài)碼", example = "2000")

private int error;

@ApiModelProperty(value = "返回提示信息", example = "成功", position = 1)

private String message;

@ApiModelProperty(value = "返回數(shù)據(jù)", example = " ", position = 2)

private T data;

3.定義一些通用方法可進行統(tǒng)一使用,這些可自行定義相關方法

public static R ok() {return ok(Result.SUCCESS);}

三、自定義方法響應

1.如下面一行代碼只需要在放回結構體R中添加對應的返回類型即可,swagger文檔會生成CommentVo響應的說明文檔,另外CommentVo相關字段也需使用@ApiModelProperty注解說明每個字段的含義,才會顯示

public R<CommentVO> getComment(@Validated CommentSelfParam param){

四、響應結果

1.響應文檔:

2.響應示例:

一劍寒霜十四州
小怪獸,我是明非?。?
瀏覽 7.6w
4
相關推薦
最新評論
贊過的人 4
評論加載中...

暫無評論,快來評論吧!