java - 如何识别生成的 swagger 文档中为什么有不需要的类型。如何防止它?
问题描述
对于我们的项目,我们使用 swagger.version->1.5.16 和 swagger-maven-plugin (3.1.5) 为我们的公共 REST API 生成 swagger 文档(用 java + swagger 注释编写)
问题是在生成的文档中列出了与公共 API 无关的类型 - 没有 API 方法将这些用作参数,也没有用作返回类型。
为什么会发生这种情况,我们该如何预防?(生成 swagger 文档时是否有任何调试日志以帮助确定原因?)
提前致谢!
例子:
public class Vehicle {
public StrangeObject strangeMethod() {
return null;
}
public class StrangeObject<T> {}
}
和自行车:
import javax.ws.rs.DELETE;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
@Path("/bikes")
@Api
public class Bike extends Vehicle {
@DELETE
@Path("/book")
@Produces({ "application/json" })
@ApiOperation(nickname = "bookBike",
value = "Book a Bike",
code = 200,
response = Boolean.class)
@ApiResponses(
value = {
@ApiResponse(code = 403, message = "Forbidden"),
@ApiResponse(code = 404, message = "Not Found")
})
public Boolean handleBook(
@PathParam("id") @ApiParam(value = "The ID of the bike.") String id) {
return Boolean.TRUE;
}
}
StrangeObject 出现在 Definitions swagger 文档中,这就是我想要修复的。 注意:假设我无权访问 Vehicle,它来自外部库。
解决方案
推荐阅读
- object-detection - 是否可以通过减少对象类的数量来显着减少图像的推理时间?
- google-apps-script - 数据不会正确发布
- java - 如何使用中间证书创建 PKCS12 文件?
- sql-server - 当我检查 SentryIO 时,'CAST' 附近的语法不正确,预期为 'AS'
- java - 来自 Kafka 的消息未发送到 Clickhouse
- oracle - 使用 IDE 工具(如 SQL Developer 或 Toad)的 Oracle 并行查询行为
- django - Django中状态管理的最佳实践
- c++ - 如何使用 nvcc 将共享库 (.so) 链接到 CUDA 源文件 (.cu)?
- javascript - 将更改的参数从挂钩传递到 setInterval()
- listview - Xamarin:标签在 ListView 中消失