2012-10-06 6 views
6

私は、自分のUIを強化するRESTful Webサービスを構築しようとしています。私が純粋なHATEOASの原則に従えば、コレクションの個々のリソースのURIだけを公開する必要があります。さて、私は親子関係があり、各親は50人の子供を持つことができ、親がクリックされたときに表示されるすべての子どもの部分データがUIに必要であると言う。純粋なHATEOASとサービスコールの呼び出しが多すぎます

親に子URIのみを公開すると、UIはこれを行うために50のWebサービス呼び出しを行う必要があります。もう1つのアプローチは、URIだけでなく、子についての親情報と部分情報を提供する別個のAPIを持つことです。これは十分な共通問題だと私は確信しています。ここで正しいバランスは何ですか?いくつかの落とし穴は何ですか? 「唯一のURI」のアプローチは設計の観点から見るときれいですが、これらのサービスコールのせいでUIが本当に遅くなり、サーバーに多くの負荷をかける可能性があります。したがって、他のアプローチはより実用的かもしれません。あなたの経験では、どちらが良いですか?

答えて

5

あなたは、ハイパーメディア制約に必要なものについて誤解されています。親オブジェクトの表現に子オブジェクトの情報を含めることはできないということは何もありません。実際にはそれはまさにHal(ハイパーメディアタイプ)が可能になるように設計されたものです。

+0

k ..ありがとう!しかし実際には、あまりにも多くの通話をしなければならない場合は本当に苦しいですか? –

+1

@ Raze2dustあなたは冗長に従わなければならないリンクの多くは、私的に安全にキャッシュすることができます。だから、たくさんのHTTPコールがあるように感じますが、ほとんどのネットワークラウンドトリップは最適化できます。子リソースの一部を親表現に埋め込むことに加えて、非常にネットワーク効率の良いAPIを作成できます。 –

+0

キャッシュ可能性への影響はありますが、バニラhttpキャッシュを使用できないようなHALの埋め込みを使用してください。または(埋め込みを無視する)ことができれば、キャッシュを効果的に活用することはできません。 – dietbuddha

関連する問題