2.63. REST


公开 REST 服务及其 OpenAPI 规格或调用外部 REST 服务。

2.63.1. 内部

有关用法和配置详情,请参阅上述链接。

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-httpservlet,您需要将相应的扩展作为依赖项添加到项目中,并在 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");
        ...
    }
}
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.