4.8. REST エンドポイントパス解決における変更


警告

この変更により、アプリケーションを Red Hat ビルドの Quarkus 1.7 から Red Hat ビルドの Quarkus 1.11 にアップグレードする際に、アプリケーションの REST エンドポイントが破損する可能性があります。アプリケーションの移行後にエンドポイントパスを更新するようにしてください。

Red Hat ビルドの Quarkus 1.11 では、アプリケーションとアプリケーション以外の REST エンドポイントのパスは、一般的な絶対ルートパスと相対的に解決されます。REST エンドポイントのデフォルトの一般的なルートパスは、以下のように設定されます。

  • /: アプリケーションのメイン REST コントローラークラスによって直接公開される REST エンドポイント。アプリケーションエンドポイントのデフォルトパスを変更するには、プロジェクトの application.properties ファイルの quarkus.http.root-path プロパティーの値を変更します。
  • q: アプリケーションと統合されるツールが提供するサービスの REST エンドポイント (アプリケーションのヘルスモニタリングやメトリクスコレクションなどを目的とする)。アプリケーションエンドポイントのデフォルトパスを変更するには、プロジェクトの application.properties ファイルの quarkus.http.non-application-root-path プロパティーの値を変更します。

相対ルートパスは、quarkus.http.root-path プロパティーによって定義されるルートパスの下にネストされる点に留意してください。たとえば、quarkus.http.root-path プロパティーに定義されたルートパスが / に設定され、quarkus.http.non-applicationroot-path プロパティーに定義されたアプリケーション以外のエンドポイントのルートパスが q に設定されている場合、アプリケーション以外のエンドポイントの絶対エンドポイントパスは /q/<non-application-endpoint-name> になります。

ただし、アプリケーション以外の個々のエンドポイントのパスを、/q/<non-application-endpoint-name> に配置するように明示的に設定することもできます。

エンドポイントパスは quarkus.http.root-path および quarkus.http.non-application-root-path によって設定されるルートパスに相対的と解釈されるため、アプリケーションのエンドポイントに設定するカスタムパスおよびサブパスから先頭のスラッシュ ((/) を除外する必要があります。

たとえば、アプリケーションの REST コントローラーで Prometheus のメトリクスエンドポイントを公開する場合は、エンドポイントが /q/metrics で公開されるように、@Path アノテーションのエンドポイントパスを metrics に設定する必要があります。同じパス値を /metrics に設定すると、メトリクスエンドポイントは /metrics で公開されます。

アプリケーション以外のエンドポイントを別の namespace の下に設定する例

たとえば、プロジェクトの application.properties ファイルに以下のプロパティーを設定し、/api ルートパスで hello エンドポイントアプリケーションを、そして /api/q パスで metrics エンドポイントを公開することができます。

application.properties

quarkus.http.root-path=/api
quarkus.http.non-application-root-path=q
Copy to Clipboard Toggle word wrap

この設定では、/api/hello/api/q/metrics の両方がパブリックです。つまり、/api/hello にアクセスするパーミッションを持つユーザーは、/api/q/metrics エンドポイントにもリクエストを送信して、有効な Response を受け取ることができます。

health エンドポイントをパブリック以外にする場合は、application.properties のアプリケーション以外のエンドポイントのルートパスを /q namespace に設定できます。

application.properties

quarkus.http.root-path=/api
quarkus.http.non-application-root-path=/q
Copy to Clipboard Toggle word wrap

この設定では、/api/hello エンドポイントはパブリックですが、/q/metrics は異なるアクセスパーミッションを設定できる別の namespace に公開されています。

Red Hat ビルドの Quarkus 1.11 では、元のアプリケーション以外のエンドポイントパスに送信されたリクエストは、/q namespace の新しいパスに自動的にリダイレクトされます。

プロジェクトの application.properties ファイルで以下の属性を設定して、アプリケーション以外のエンドポイントパスの自動リダイレクトを無効にすることができます。

quarkus.http.redirect-to-non-application-root-path=false
Copy to Clipboard Toggle word wrap

quarkus.http.non-application-root-path の値を、絶対アプリケーションエンドポイントルートの値に解決する変数に設定し、すべてのエンドポイントの絶対エンドポイントのルートパスを使用するようにアプリケーションを切り替えることができます。

quarkus.http.non-application-root-path=${quarkus.http.root-path}
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る