使用现有 vert.x 项目生成 swagger-api
Generate swagger-api with existing vert.x project
我有一个现有的 vert.x 项目变得过于重量级和不透明。*
为了替换它,我正在检查几个选项,其中一个是 swagger。
有谁知道可以从 vert.x 创建 swagger-api 的开源库?
我不知道有这样的事情。唯一的 vertx-swagger 集成恰恰相反:根据 Swagger 配置生成 Vertx 路由器:
https://github.com/phiz71/vertx-swagger
您可以使用此解决方案生成所有路由:
然后手动添加到Swagger Editor, and finally generate your new APIs with Swagger Codegen
请注意,将您的应用程序重写为另一种语言或框架可能无法解决您的问题。 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
我有一个现有的 vert.x 项目变得过于重量级和不透明。*
为了替换它,我正在检查几个选项,其中一个是 swagger。
有谁知道可以从 vert.x 创建 swagger-api 的开源库?
我不知道有这样的事情。唯一的 vertx-swagger 集成恰恰相反:根据 Swagger 配置生成 Vertx 路由器: https://github.com/phiz71/vertx-swagger
您可以使用此解决方案生成所有路由:
然后手动添加到Swagger Editor, and finally generate your new APIs with Swagger Codegen
请注意,将您的应用程序重写为另一种语言或框架可能无法解决您的问题。 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