2.65. rest


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

2.65.1. 内部是什么

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

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-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.