2

私はJPAエンティティをWebサービスとして公開するために、Spring Data JPAとSpring Data Restを使用しています。私のエンティティは数百の属性を持ち、oneToは非常に多くの属性を持つ他のエンティティとの多くの関係も持っています。フィルタAPI応答json出力クエリパラメータに基づいて

私は、ユーザが関心のあるJSON応答本体のフィールドだけを返すことができるクエリパラメータを渡すことができます。これまではIBMのRational Team Concert REST APIを使用していましたが、呼び出し元は返されるフィールドを選択するためにXPathクエリを渡すことができます。 XPathの統合により、呼び出し側は個々のフィールドにフィルタリングロジックを適用することもできました。例えば、ここではそのAPIで可能だったものです。

作業項目/のworkItem [作成者/名= 'ボブSacremento' または所有者/名= 'ボブSacremento'] /(ID |要約)

^ザ・上記のクエリは、所有者または作成者の名前がBob SacrementoであるすべてのworkItem要素のidフィールドとsummaryフィールドを返します。

作業項目/のworkItem /(ID |サマリー|コメント[作成者/名= 'ボブSacremento'] /コンテンツ)

^上記のクエリは、ID、概要とすべてのworkItemのコメント内容のフィールドを返します。要素。しかし、Bob Sacrementoによって作成されたコメントのみが表示されます。

私のAPIと同様のことをしたいと思います。そのために私自身のコントローラーを書き込む前に、この機能を提供するフレームワークがあるかどうかを尋ねました。それは、Spring Data RESTがそうでないようです。

答えて

1
あなたは 知ら投影を定義するために春データRESTを使用することができます

が、これはあなたの基礎となるモデル上の特定予測を公開するエンドポイントを作成するために、および/または呼び出し側はURIなどを経由して知られている(事前定義された)予測を要求できるようにするために使用することができますfoo/bar/bas?projection=summary

さらに詳しい情報は、Spring Data REST docsにある

しかし、私はSpring Data REST、JPAと統合され、呼び出し元が(SQL-esque SELECT文の形式で)投影を指定してから、それらの投影をあなたのために飛ぶ。

コントローラにselect=a,b,cなどのクエリパラメータを定義し、指定された値を使用してSpring Data JPA経由で投影を適用する必要があると思われます。

関連する問題