如何在Quarkus中实现Apache Camel路由与Swagger UI的集成
Quarkus 集成 Apache Camel 路由与 Swagger UI 实现方案
前置要求
你已经完成Quarkus + Swagger UI的基础配置,无需调整现有结构,只需新增Camel相关配置即可实现集成。
1. 引入必要扩展
Maven项目在pom.xml中添加以下两个依赖即可:
org.apache.camel.quarkus:camel-quarkus-rest:提供Camel REST路由基础支持org.apache.camel.quarkus:camel-quarkus-openapi-java:负责自动将Camel REST路由转换为符合规范的OpenAPI定义
2. 编写带OpenAPI元信息的Camel路由
在你的Camel RouteBuilder实现类中,为REST路由添加接口描述、参数、响应码等元信息,示例如下:
import org.apache.camel.builder.RouteBuilder; import jakarta.enterprise.context.ApplicationScoped; @ApplicationScoped public class CamelRestRoute extends RouteBuilder { @Override public void configure() throws Exception { // 配置REST基础路径与OpenAPI元信息 restConfiguration() .contextPath("/camel") .apiContextPath("/openapi") .apiProperty("api.title", "Camel 业务接口") .apiProperty("api.version", "v1"); // 定义REST接口 rest("/order") .produces("application/json") // GET查询订单接口 .get("/{orderId}") .description("根据订单ID查询订单详情") .param().name("orderId").type(path).description("订单唯一ID").dataType("string").endParam() .responseMessage().code(200).message("查询成功").endResponseMessage() .to("direct:queryOrder"); // 业务逻辑路由 from("direct:queryOrder") .setBody(simple("{\"orderId\":\"${header.orderId}\", \"amount\":100, \"status\":\"paid\"}")); } }
3. 调整Swagger UI配置
在application.properties中添加以下配置,让Swagger UI自动加载Camel生成的OpenAPI文档:
# 开启Camel OpenAPI与Quarkus全局OpenAPI的合并 quarkus.camel.openapi.include-quarkus-openapi=true # 可选配置:如果不需要合并,可配置Swagger UI同时展示两份文档 # quarkus.swagger-ui.urls = /openapi, /camel/openapi
4. 功能验证
启动Quarkus应用后,访问默认的Swagger UI地址/q/swagger-ui,即可看到Camel路由对应的接口已经出现在文档列表中,支持直接在页面上进行接口调试。
注意:如果配置了全局OpenAPI合并,所有Camel REST接口的定义会自动合并到Quarkus默认的
/openapi规范中,无需单独维护多份文档。
内容的提问来源于stack exchange,提问作者Ehtisham
相关产品推荐
相关产品推荐

