2.91. Platform HTTP
このエクステンションにより、HTTP リクエストを使用するために HTTP エンドポイントを作成できます。
これは、quarkus-vertx-http エクステンションによって提供される Eclipse Vert.x HTTP サーバー上にビルドされます。
2.91.1. 含まれるもの リンクのコピーリンクがクリップボードにコピーされました!
-
Platform HTTP コンポーネント、URI 構文:
platform-http:path
使用方法と設定の詳細は、上記リンクを参照してください。
2.91.2. Maven コーディネート リンクのコピーリンクがクリップボードにコピーされました!
code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成
または、既存のプロジェクトに座標を追加します。
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-platform-http</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-platform-http</artifactId>
</dependency>
2.91.3. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
2.91.3.1. 基本的な使用方法 リンクのコピーリンクがクリップボードにコピーされました!
/hello エンドポイントですべての HTTP メソッドを提供します。
from("platform-http:/hello").setBody(simple("Hello ${header.name}"));
from("platform-http:/hello").setBody(simple("Hello ${header.name}"));
/hello エンドポイントで GET リクエストのみを提供します。
from("platform-http:/hello?httpMethodRestrict=GET").setBody(simple("Hello ${header.name}"));
from("platform-http:/hello?httpMethodRestrict=GET").setBody(simple("Hello ${header.name}"));
2.91.3.2. Camel REST DSL 経由の platform-http の使用 リンクのコピーリンクがクリップボードにコピーされました!
platform-http コンポーネントで Camel REST DSL を使用できるようにするには、pom.xml に camel-quarkus-rest を追加します。
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-rest</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-rest</artifactId>
</dependency>
その後、Camel REST DSL を使用できます。
2.91.3.3. multipart/form-data ファイルのアップロードの処理 リンクのコピーリンクがクリップボードにコピーされました!
ホワイトリストに登録して、アップロードを特定のファイル拡張子に制限することができます。
2.91.3.4. platform-http エンドポイントのセキュリティー保護 リンクのコピーリンクがクリップボードにコピーされました!
Quarkus は、platform-http エンドポイントのセキュリティー保護に使用できるさまざまなセキュリティーおよび認証メカニズムを提供します。詳細は、Quarkus Security のドキュメント を参照してください。
ルート内で、認証されたユーザーとその関連する SecurityIdentity および Principal を取得できます。
Quarkus ドキュメント で quarkus.http.body.* 設定オプション (特に次の項目) も確認してください。quarkus.http.body.handle-file-uploads、quarkus.http.body.uploads-directory および quarkus.http.body.delete-uploaded-files-on-end。
2.91.3.5. リバースプロキシーの実装 リンクのコピーリンクがクリップボードにコピーされました!
プラットフォーム HTTP コンポーネントはリバースプロキシーとして機能できます。その場合、Exchange.HTTP_URI、Exchange.HTTP_HOST ヘッダーは、HTTP 要求のリクエスト行で受信した絶対 URL から入力されます。
エクスチェンジを元のサーバーに単純にリダイレクトする HTTP プロキシーの例を次に示します。
from("platform-http:proxy")
.toD("http://"
+ "${headers." + Exchange.HTTP_HOST + "}");
from("platform-http:proxy")
.toD("http://"
+ "${headers." + Exchange.HTTP_HOST + "}");
2.91.3.6. エラー処理 リンクのコピーリンクがクリップボードにコピーされました!
ルートから例外が出力されたときにクライアントに返される応答をカスタマイズする必要がある場合は、doTry、doCatch、onException などの Camel エラー処理構造を使用できます。
たとえば、特定の例外タイプが出力された場合に応答してグローバル例外ハンドラーを設定する場合などです。
CDI オブザーバーを使用して Vert.x Web ルーターの初期化をフックすることで、より詳細なエラー処理を実装できます。
RestEASY などのエクステンションが存在する場合、独自のエラー処理ロジックが登録される可能性があるため、ルーターの設定を変更する場合は注意が必要です。
2.91.4. 追加の Camel Quarkus 設定 リンクのコピーリンクがクリップボードにコピーされました!
2.91.4.1. プラットフォーム HTTP サーバー設定 リンクのコピーリンクがクリップボードにコピーされました!
プラットフォーム HTTP サーバーの設定は Quarkus によって管理されます。設定オプションの完全なリストは、Quarkus HTTP 設定ガイド を参照してください。
Platform HTTP サーバーの SSL を設定するには、SSL ガイドを使用した安全な接続 に従ってください。SSLContextParameters を使用した SSL 用のサーバーの設定は現在サポートされていないことに注意してください。
2.91.4.2. 文字エンコーディング リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションがデフォルト以外のエンコーディングを使用してリクエストを送受信することが想定される場合は、ネイティブモードガイドの 文字エンコーディング のセクションを確認してください。