针对@Api和@ApiOperation注解里的属性值,最好使用tags属性代替value属性,原因如下
注解属性value、tags二者作用在类和作用在方法上的区别?
答:tags属性作用在类和作用在方法上都用于分组,但分组的效果区别很大(以下2者可结合使用)。
a、tags作用在类上时,会对全局的方法分组,即根据tags属性值复制多份,此时方法上的tags值无效,方法上tags配或不配效果都一样。
例如:我在Controller类A上加@Api(tags={“A”, “B”}), 该类下有10个子接口,在类B上加@Api(tags={“A”, “C”}),该类下有12个子接口,那么swagger图形界面上会出现三个大接口块A, B, C,接口数分别为22,10和12
b、tags作用在方法上时,会根据当前类的所有方法的tags值做分组,粒度更细。
例如:如果在A类的A1方法上加@ApiOperation(tags={“A1”, “A2”}),在B类的B1接口方法上加@ApiOperation(tags={“A1”, “A2”}), B2接口方法上加@ApiOperation(tags={“A1”, “A3”}), 且A,B类的@Api都启用一个相同的tags属性值AB(A有10个子接口,B有12个),那么此时swagger 的ui界面会出现四个块接口AB(22),A1(3),A2(2), A3(1), 以及AB{22},