いくつかの関連ドメインをカバーする主要なアプリケーションREST APIでは、リソースが属するビジネスドメインに基づいてリソースを「エリア」に分割する方が理にかなっていますか、それとも単一のモデルを維持する方が良いですか?
たとえば、「販売」と「在庫」のサブドメインがあります。システムのユーザーは通常、一度に1つのドメインのみを考慮しますが、例外が発生する可能性もあります。両方のドメインに存在する「アイテム」の概念があるため、「アイテム」リソースを2つの異なる方法で実装できます。
各ドメインの概念を表すさまざまなリソースがあり、各リソースは関連データのみを保持しています。
/ sales / items /:id
/ inventory / items /:id
すべてのコンテキストで使用されるすべてのデータを含む単一のリソースがあります。
/ items /:id
ドメインの1つだけに属するリソースもたくさんあります。
「地域」の長所
- 単一ドメインのみに関心があるユーザー向けのAPIを理解しやすくする
- リソースの実装が簡単(一度に読み取る/更新する項目が少ない)
- 特定のドメインごとにリソースをより特殊化/最適化できます
- より詳細なレベルでリソースへのアクセスを制御する機能
単一の統合モデルの長所
- 複数のドメインに属するコンセプトの重複リソースはありません
- ユーザーが複数のドメインで作業する必要がある場合は、すべてのニーズに対応する単一のAPIを使用するだけで済みます
上記のAPIパーティショニングは、APIコントラクトと実装の両方の複雑さを軽減する有効な方法ですか?私はそれがどこにも言及されているのを見たことがありません。
どちらかのアプローチを支持して決定を下すために検討する必要があるものは他にありますか?