2.63. REST
公开 REST 服务及其 OpenAPI 规格或调用外部 REST 服务。
2.63.1. 内部
-
REST 组件,URI 语法:
rest:method:path:uriTemplate
-
REST API 组件, URI 语法:
rest-api:path
有关用法和配置详情,请参阅上述链接。
2.63.2. Maven 协调
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者在现有项目中添加协调:
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-rest</artifactId> </dependency>
2.63.3. 其他 Camel Quarkus 配置
此扩展取决于 平台 HTTP 扩展,并将其配置为提供 REST 传输的组件。
2.63.3.1. 包含带有 platform-http 的特殊字符的路径参数
使用 platform-http
REST 传输时,path 参数名称中不允许使用一些字符。这包括 '-' 和 '$' 字符。
为了使以下示例 REST /dashed/param
路由正常工作,需要 io.vertx.web.route.param.extended-pattern=true
。
import org.apache.camel.builder.RouteBuilder; public class CamelRoute extends RouteBuilder { @Override public void configure() { rest("/api") // Dash '-' is not allowed by default .get("/dashed/param/{my-param}") .to("direct:greet") // The non-dashed path parameter works by default .get("/undashed/param/{myParam}") .to("direct:greet"); from("direct:greet") .setBody(constant("Hello World")); } }
Vert.x Web 文档 中有其他一些背景信息。
2.63.3.2. 配置备用 REST 传输供应商
要使用另一个 REST 传输提供程序,如 netty-http
或 servlet
,您需要将相应的扩展作为依赖项添加到项目中,并在 RouteBuilder
中设置提供程序。例如,对于 servlet
,您必须添加 org.apache.camel.quarkus:camel-quarkus-servlet
依赖项,以及设置提供程序,如下所示:
import org.apache.camel.builder.RouteBuilder; public class CamelRoute extends RouteBuilder { @Override public void configure() { restConfiguration() .component("servlet"); ... } }