是否有任何基于注释的 Swagger 文档创建器可用于 Vert.x ?其余端点都使用路由器进行管理,因此,如果有任何方法可以生成 Swagger 文档,那就太好了。我已经使用各种注释浏览了基于 Java Jersey 的文档创建器,但找不到 Vert.x 文档的任何内容。Git Hub 上的官方 swagger wiki 也没有包含任何与 Vert.x 文档相关的文档。
自从这个问题被问到以来,Swagger被命名为OpenAPI,Vert.x提供了Web API合约模块。使用这个anupsaund创建了vertx-auto-swagger存储库(反过来基于vertx-openapi-spec-generator(。它确实:
- 阅读 Java 注释并将其映射到 openAPI 规范中。
- 在端点上提供 openAPI 规范。
- 提供 SwaggerUI 的可分发版本,该版本从第 2 点开始呈现招摇的规范。
然后允许注释如下:
@Operation(summary = "Find products by ID", method = "GET", operationId = "product/:productId",
tags = {
"Product"
},
parameters = {
@Parameter(in = ParameterIn.PATH, name = "productId",
required = true, description = "The unique ID belonging to the product", schema = @Schema(type = "string"))
},
responses = {
@ApiResponse(responseCode = "200", description = "OK",
content = @Content(
mediaType = "application/json",
encoding = @Encoding(contentType = "application/json"),
schema = @Schema(name = "product", example =
"{" +
"'_id':'abc'," +
"'title':'Red Truck'," +
"'image_url':'https://images.pexels.com/photos/1112597/pexels-photo-1112597.jpeg'," +
"'from_date':'2018-08-30'," +
"'to_date':'2019-08-30'," +
"'price':'125.00'," +
"'enabled':true" +
"}",
implementation = Product.class)
)
),
@ApiResponse(responseCode = "404", description = "Not found."),
@ApiResponse(responseCode = "500", description = "Internal Server Error.")
}
)