You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vert.x中能否像Spring生成Swagger文档那样生成API文档?

在Vert.x中生成API文档(类似Spring Swagger的方案)

当然有,Vert.x生态里有几种成熟的方式可以实现类似Springfox/Swagger的API文档生成能力,以下是实操性强的方案:

1. 官方方案:Vert.x Web OpenAPI

这是Vert.x官方提供的OpenAPI(Swagger 3.0+规范)集成方案,支持从代码注解或预定义的OpenAPI规范文件生成文档,同时还能自动验证请求参数。

核心步骤:

  • 添加依赖(以Maven为例):
<dependency>
  <groupId>io.vertx</groupId>
  <artifactId>vertx-web-openapi</artifactId>
  <version>4.5.1</version> <!-- 替换为当前最新Vert.x版本 -->
</dependency>
  • 用注解定义API:在你的路由处理器类上添加OpenAPI注解,比如:
@OpenAPIDefinition(
    info = @Info(title = "用户服务API", version = "1.0.0"),
    servers = @Server(url = "/api")
)
public class UserApiHandler {

  @Operation(summary = "获取用户详情", description = "根据用户ID查询用户信息")
  @ApiResponses(value = {
      @ApiResponse(responseCode = "200", description = "成功返回用户数据", content = @Content(schema = @Schema(implementation = User.class))),
      @ApiResponse(responseCode = "404", description = "用户不存在")
  })
  @GET
  @Path("/users/{userId}")
  public void getUser(RoutingContext ctx) {
    // 业务逻辑
  }
}
  • 导出OpenAPI规范并集成Swagger UI:通过OpenAPIGenerator将注解导出为openapi.json,然后用Vert.x静态资源服务托管Swagger UI的静态文件(直接下载Swagger UI的dist包放到resources目录),让UI指向生成的规范文件即可。

2. 社区方案:vertx-swagger库

这个社区库更贴近Springfox的使用体验,通过注解自动生成Swagger 2.0/3.0规范,无需手动编写yaml文件。

核心步骤:

  • 添加依赖:
<dependency>
  <groupId>com.github.phiz71</groupId>
  <artifactId>vertx-swagger</artifactId>
  <version>1.6.0</version>
</dependency>
  • 配置Swagger生成器:在Vert.x启动时初始化Swagger生成器,扫描带有注解的路由类:
SwaggerRouter swaggerRouter = SwaggerRouter.create(vertx, router, "/swagger");
swaggerRouter.addApiClass(UserApiHandler.class);
// 访问/swagger.json可获取规范,/swagger-ui可打开文档UI
  • 直接使用注解:和Springfox类似,在路由方法上添加@ApiOperation、@ApiParam等注解即可自动生成文档。

3. 轻量方案:手动编写OpenAPI规范+托管Swagger UI

如果你的API规模较小,也可以手动编写openapi.yaml或openapi.json,然后用Vert.x的静态资源路由挂载Swagger UI,直接指向你的规范文件。这种方式无需额外依赖,适合快速搭建。


内容的提问来源于stack exchange,提问作者Techi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 23:51:20