0

リソース/messagesがあります。

私のJavaコードでは、メッセージインターフェイスは次のようになります。

interface Message {
    public int getID();
    public int getPostingUserID();
    public String getText();
    public int getRelevance();
}

たとえば、/ messages/7は次のようになります。

{ id: 7, postingUserID: 102, text: "tabs are better!", relevance: 10.3 }

残念ながら、getRelevance()はオンザフライで計算するのに非常に費用がかかり、おそらくクエリの10分の1にしか必要ありません。必要のないときに計算したくありません。

だから、私はいくつかのオプションを見ることができます:

  • / messages / 7?includeRelevance = trueを指定して、関連性を計算するように指示します。それ以外の場合は、応答に含めないでください。
  • / messages / 7 / relevanceを別のリクエストとして計算し、それを計算します
  • / relevances?forMessageID = 7を個別のリクエストとして計算し、次に計算します

最もRESTfulなオプションはどれですか?

ありがとう!

4

2 に答える 2

3

私は/messages/7/relevanceこのような状況を好む傾向があり、フェッチ時に返されるドキュメントに、関連する関連リソースへの URL が含まれていることを確認します (もちろん、HATEOAS の検出可能性のため) /messages/7

于 2013-01-08T23:48:11.803 に答える
0

これを行うための最もRESTfulな方法(私は信じており、間違いなく間違っている可能性があります)は、2つの異なるメディアタイプを定義することです。

クライアントはAccept:ヘッダーを使用して特定のものを要求でき、デフォルトで最小のものに設定できます。

于 2013-01-08T22:53:28.707 に答える