2.65. rest
公开 REST 服务及其 OpenAPI 规格或调用外部 REST 服务。
2.65.1. 内部是什么
-
REST 组件, URI 语法:
rest:method:path:uriTemplate
-
REST API 组件, URI 语法:
rest-api:path
有关使用和配置详情,请参阅上述链接。
2.65.2. Maven 协调
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-rest</artifactId> </dependency>
2.65.3. 其他 Camel Quarkus 配置
此扩展取决于 平台 HTTP 扩展,并将其配置为提供 REST 传输的组件。
2.65.3.1. 包含带有 platform-http 的特殊字符的路径参数
使用 platform-http
REST 传输时,路径参数名称中不允许某些字符。这包括 '-' 和 '$' 字符。
要使以下示例 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.65.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"); ... } }