23.4.5. RESTful API によるエンティティの公開


Seam により RESTful の方法を使用して、アプリケーションデータにアクセスすることは実に簡単です。Seam が導入した改善点のひとつとして、純粋な HTTP 呼び出しによるリモートアクセスに対し SQL データーベースの一部を公開することができることです。このため、Seam/RESTEasy 統合モジュールは 2 つのコンポーネント ResourceHomeResourceQueryを提供します。これは Seam Application Framework (13章Seam アプリケーションフレームワーク) により提供された API から利点を受けています。これらのコンポーネントにより、ドメインモデルエンティティクラスを HTTP API にバインドすることができます。

23.4.5.1. ResourceQuery

ResourceQuery は RESTful Web サービスのような機能をクエリするエンティティを公開します。デフォルトでは、基礎となるシンプルな Query コンポーネントは、任意のエンティティクラスのインスタンスの一覧を返し、自動的に作成されます。もしくは、ResourceQuery コンポーネントはより高度なクラスの既存の Query コンポーネントにリンクすることができます。次のサンプルではどれほど簡単に ResourceQuery を設定できるか示しています。
<resteasy:resource-query
   path="/user"
   name="userResourceQuery"
   entity-class="com.example.User"/>
Copy to Clipboard Toggle word wrap
この単一の XML エレメントにより、ResourceQuery コンポーネントが設定されます。設定は簡単です。
  • コンポーネントは com.example.User インスタンスの一覧を返します。
  • コンポーネントは URI パス /user の HTTP 要求を処理します。
  • コンポーネントはデフォルトではデータを (クライアントの好みに基づき) XML または JSON に変換します。対応する MIME タイプのセットは media-types 属性を使用して変更できます。例えば以下のとおりです。
<resteasy:resource-query
   path="/user"
   name="userResourceQuery"
   entity-class="com.example.User"
   media-types="application/fastinfoset"/>
Copy to Clipboard Toggle word wrap
XML を使用してコンポーネントを設定するのを好まない場合は、別の方法として拡張機能によってコンポーネントを設定できます。
@Name("userResourceQuery")
@Path("user")
public class UserResourceQuery extends ResourceQuery<User>
{
}
Copy to Clipboard Toggle word wrap
Query は読み取り専用の動作で、リソースは GET 要求にのみ応答します。さらに Web サービスのクライアントは、ResourceQuery を使用することで次のパスパラメータを使ってクエリの結果のセットを操作できます。
Expand
パラメータの名前 詳細
start /user?start=20 20 番目のエントリで始まるデーターベースクエリの結果のサブセットを返します。
show /user?show=10 10 エントリに制限されたデーターベースクエリの結果のサブセットを返します。
例えば、HTTP GET 要求を /user?start=30&show=10 に送り、行 30 で始まる 10 行を表すエントリの一覧を取得します。

注記

RESTEasyは JAXB を使用してエンティティをマーシャルします。よって、それらをワイヤで転送するには、@XMLRootElement でエンティティクラスにアノテーションを付与する必要があります。詳細は JAXB および RESTEasy のドキュメントを参照してください。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat