使用现有的 vert.x 项目生成 swagger-api



我有一个现有的 vert.x 项目,它变得过于重量级和不透明。

为了替换它,我正在检查几个选项,其中一个是招摇。

有谁知道可以从 vert.x 创建 swagger-api 的开源库?

我不知道

这样的事情。唯一的 vertx-swagger 集成完全相反:基于 Swagger 配置生成 Vertx 路由器:https://github.com/phiz71/vertx-swagger

您可以做的是使用此解决方案生成所有路由:列出 Vertx 中的所有已注册路由

然后手动将它们添加到 Swagger 编辑器,最后使用 Swagger Codegen 生成新的 API

请注意,将应用程序重写为另一种语言或框架可能无法解决您的问题。NodeJS不像Vertx那样类型安全,SpringBoot也不像Vertx那样并发。但是,如果您不需要类型安全或并发性,那么当然,两者都是可行的选择。

这是一个开源项目(用于JVM(,它从现有的Vert.x路由器生成Swagger/OpenAPI规范:

https://github.com/outofcoffee/vertx-oas

(披露:这是我的开源项目(

用法示例:

// your normal Vert.x Web Router with paths etc.
Router router = Router.router(vertx);
router.post("/users").handler( routingContext -> { /* etc... */ });
router.get("/users/:userId").handler( routingContext -> { /* etc... */ });
// publish the Swagger/OpenAPI specification to a URL
RouterSpecGenerator.publishApiDocs(router, "/api/spec");

可以通过添加相应的文件扩展名来获取规范的 YAML 或 JSON 版本。

例如,获取/api/spec.yaml会产生:

openapi: "3.0.1"
info:
  title: "Vert.x APIs"
  description: "This specification was generated from a Vert.x Web Router."
paths:
  /users:
    post:
      parameters: []
  /users/{userId}:
    get:
      parameters:
      - name: "userId"
        required: true
        allowEmptyValue: false

相关内容

  • 没有找到相关文章

最新更新