我有一个现有的 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