java - 如何避免类标签被带有招摇的方法标签覆盖?
问题描述
使用 Swagger 1.5.24,并按照文档,我以这种方式写了一个招摇:
@Path("/path1")
@Api(value = "Class for some requests", tags = {"Requests of type 1", "path1"})
public class Requests1 {
@GET
@Path("/request1")
@ApiOperation(value = "Request 1 standard retriever", tags = {"standard", "version 1.0"})
public Response getRequest1(..) { ... }
@GET
@Path("/request1/specific")
@ApiOperation(value = "Request 1 specific retriever", tags = {"specific", "version 1.1"})
public Response getRequest1specific(..) { ... }
@POST
@Path("/request1")
@ApiOperation(value = "Request 1 standard inserter", tags = {"standard", "version 1.0"})
public Response insertRequest1(..) { ... }
@POST
@Path("/request1/specific")
@ApiOperation(value = "Request 1 specific inserter", tags = {"specific", "version 1.0"})
public Response insertRequest1specific(..) { ... }
}
我想要获得的是在类型 1和路径1 的标签下列出类的所有方法,并在标签下列出标准、版本 1.0、特定或版本 1.1 ,仅列出指定了 tose 标签的方法。
例子:
类型 1 的请求
- 请求 1 个标准检索器
- 请求 1 个特定的检索器
- 要求 1 个标准插入器
- 请求 1 个特定的插入器
- ...
1.1版
- 请求 1 个特定的检索器
- 请求 2 标准插入器
- 请求 5 ...
... 等等。
问题是为方法设置标签会覆盖类的标签,导致类型为 1和path1的Request 为空列表。
我尝试在 @ApiOperation 属性中使用@Tag属性,但它显示以下错误:
注释属性 ApiOperation.tags 的值必须是常量表达式
解决方案
我可以“避免”这个问题,为每个方法设置类的标签,但这样做会降低具体标签的可读性。
例子:
@Path("/path1")
@Api(value = "Class for some requests")
public class Requests1 {
@GET
@Path("/request1")
@ApiOperation(value = "Request 1 standard retriever", tags = {"Requests of type 1", "path1", "standard", "version 1.0"})
public Response getRequest1(..) { ... }
推荐阅读
- c# - 有没有更简洁的方法来合并 C++ 和 C#
- ios - PushNotifcations,为什么我需要创建一个新的包标识符
- python - Keras Graph断开连接,多个输入嵌入
- c# - 每次我进行更改 asp.net mvc 时,HttpPostedFileBase 都是空的
- apache-poi - Java apachi poi 仅为少数字段提供错误值
- javascript - Typescript:跨接口中的属性进行类型保护
- html - 如何防止div重叠
- javascript - 输入类型=文本格式问题 Bootstrap React Javascript
- c# - 如何在 c# asp.net 中从私有提供程序实现 OpenID Connect
- javascript - 如何在 JS 中删除窗口调整大小的侦听器