Vert.x的基于注释的Swagger文档

Deb*_*Deb 6 swagger vert.x swagger-ui swagger-editor swagger-codegen

是否有适用于Vert.x的基于注释的Swagger文档创建器?其余的端点都是使用路由器管理的,因此如果有任何方法可以生成Swagger文档,那就太棒了.我使用各种注释完成了基于Java Jersey的文档创建器,但找不到Vert.x文档的任何内容.Git Hub上的官方招摇wiki也没有任何与Vert.x文档相关的文档.

Arn*_*ver 2

由于这个问题被问到,Swagger 被命名为 OpenAPI,Vert.x 提供了Web API Contract模块。使用此anupsaund创建了vertx-auto-swagger存储库(又基于vertx-openapi-spec-generator)。它确实:

  • 阅读 Java Annotations 并将它们映射到 openAPI 规范中。
  • 在端点上提供 openAPI 规范。
  • 提供 SwaggerUI 的可分发版本,它呈现第 2 点中的 swagger 规范。

然后允许注释如下:

@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.")
    }
)
Run Code Online (Sandbox Code Playgroud)