第4章 @PathParam


@PathParam は変数 URI パスフラグメントをメソッド呼び出しへマップできるようにします。
@Path("/library")
public class Library {

   @GET
   @Path("/book/{isbn}")
   public String getBook(@PathParam("isbn") String id) {
      // search my database and get a string representation and return it
   }
}
Copy to Clipboard Toggle word wrap
これにより、 リソースの URI に変数 ID を組み込むことができます。 前述の例を見ると、 アクセスしたい book の情報を isbn URI パラメータが渡していることが分かります。 プリミティブパラメータタイプ、 ストリング、 ストリングパラメータを取る Java オブジェクト、またはストリングパラメータを取る静的 valueOf メソッドを挿入することができます。 例えば、 isbn を真のオブジェクトにしたい場合、 次を書き込みます。
   @GET
   @Path("/book/{isbn}")
   public String getBook(@PathParam("isbn") ISBN id) {...}


   public class ISBN {
      public ISBN(String str) {...}
   }

Copy to Clipboard Toggle word wrap
また、 公開ストリングコンストラクタの代わりに valueOf メソッドを使用することもできます。
  public class ISBN {
     
     public static ISBN valueOf(String isbn) {...}
  }
Copy to Clipboard Toggle word wrap

4.1. 上級の @PathParam および正規表現

さらに複雑な @PathParam の使用方法もあります。
1 つの URI セグメントに組み込まれた 1 つまたは複数の @PathParam を指定することができます。
1. @Path("/aaa{param}bbb")
2. @Path("/{name}-{zip}")
3. @Path("/foo{name}-{zip}bar")
Copy to Clipboard Toggle word wrap
フォーム "/aaa111bbb" の URI は指定された最初のパラメータと一致します。 "/bill-02115" は 2 つ目のパラメータ、 "foobill-02115bar" は 3 つ目のパラメータと一致します。
「@Path と正規表現のマッピング」 では、 次のように @Path 値内で正規表現が使用できることを説明しました。
@GET
@Path("/aaa{param:b+}/{many:.*}/stuff")
public String getIt(@PathParam("param") String bs, @PathParam("many") String many) {...}

Copy to Clipboard Toggle word wrap
このように @Path が定義されると、 要求 GET /aaabb/some/stuffbb"param" 値と、some"many" 値を持つようになります。 要求 GET /aaab/a/lot/of/stuff"param" が値の b"many" が値の a/lot/of を持つようになります。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat