原因
在2.x之前,可以这么使用在Controller类上:
@Api(value= "PmsBrandController", description = "商品品牌管理")
但是在2.x中,description被弃用了。
原因在于在2.x中有了标签(tags)的概念,可以将不同的controller标记为同一个标签。使标签的分组机制更加灵活。
为了符合API的要求,保持向后兼容,保留了description字段。
现在正确的方法应当针对tags做出描述。
解决方法
先在SwaggerConfig中定义好 tags 的名称和描述。
@Configuration
@EnableSwagger2
public class SwaggerConfig {
public static final String TAG_1 = "tag1";
public static final String TAG_2 = "tag2";
public static final String TAG_3 = "tag3";
@Bean
public Docket productApi() {
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage("my.package")).build()
.apiInfo(apiInfo())
.tags(new Tag(TAG_1, "Tag 1 description."))
.tags(new Tag(TAG_2, "Tag 2 description."))
.tags(new Tag(TAG_3, "Tag 3 description."));
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("My API").version("1.0.0").build();
}
}
然后在controller上添加一个定义好的 tag 即可。
@Api(tags = { SwaggerConfig.TAG_1 })
@RestController
@RequestMapping("tag1Domain")
public class Tag1RestController { ... }