2.36. Rest
REST サービスおよび OpenAPI Specification を公開するか、外部の REST サービスを呼び出します。
2.36.1. 含まれるもの
-
REST コンポーネント、URI 構文:
rest:method:path:uriTemplate
-
REST API コンポーネント、URI 構文:
rest-api:path/contextIdPattern
使用方法と設定の詳細については、上記リンクを参照してください。
2.36.2. Maven コーディネート
code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成
または、既存のプロジェクトに座標を追加します。
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-rest</artifactId> </dependency>
2.36.3. 追加の Camel Quarkus 設定
このエクステンションは、Platform HTTP エクステンションに依存し、REST トランスポートを提供するコンポーネントとして設定します。
2.36.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}") .route() .setBody(constant("Hello World")) .endRest() // The non-dashed path parameter works by default .get("/undashed/param/{myParam}") .route() .setBody(constant("Hello World")) .endRest(); } }
Vert.x Web ドキュメント には、これに関するいくつかの背景があります。
2.36.3.2. 代替 REST トランスポートプロバイダーの設定
netty-http
や servlet
等の別の REST トランスポートプロバイダーを使用するには、それぞれのエクステンションを依存関係としてプロジェクトへの追加し、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"); ... } }