のは、私たちは、クライアントが特定の種類のアイテムのリストを取得することができ、単純なAPIを持っていると仮定しましょう:ビジネスロジックとRESTful APIの設計
GET /items/foo
GET /items/bar
GET /items/blah
応答が要求されたタイプのアイテムのリスト、各エントリであります一意のIDを持っています。 クライアントは通常、これらの項目をテーブル/グリッド/ etcに表示します。
クライアントでは、IDが&のタイプに基づいて、別のAPIでアイテムを固定/解除することができるように、クライアントでピニング機能を実装する必要があります。だから私は同僚と話して、どの項目が固定されているかどうかについてクライアントに知らせることができました。
オプションは、指定されたタイプのすべての固定されたアイテムのリストを返すために別のAPI GET /pinning/{type}
を持つことでした。
もう1つの解決策は、同様のAPI GET /pinning/{type}
を使用して、すべての固定項目のIDのリストを返すことでした。クライアントがそれを整理させてください。
最初の解決策が承認されました。彼らの主張は、バックエンドがビジネスロジックを担当し、クライアントがビジネスロジックに関与すべきではないため、クライアントはサーバーから受信したデータを表示するだけであるということでした。この議論は私のためにそれを販売していませんでした。私は、サーバーがこの場合、クライアントが追加のプレゼンテーションロジックを実行できるようにするデータを提供すべきだと考えています。
どのソリューションが優れていますか?または他の解決策は可能ですか?
はい。一般的には追加の呼び出しが必要になりますが、データの場合、特定のタイプのアイテムを取得するときには、最初にピン留めされたアイテムが優先されます。私はクライアントが初期の重要なフェッチを行うので、ピン留めされたアイテムが欠落する可能性は非常に低いと考えていました。私は今すぐ利用可能なデータを早めに最適化していると思っています。私はますます第二の解決策が好ましくない理由を見ています。 – anonymvs