以下を提供するREST Webサービスを構築したいと思います。
- ネストされたコレクション、
- エントリ内のコレクション。
入れ子のコレクションは、概念を一般的なものから特定のものに絞り込むために使用されます。次に例を示します。
/vehicles/road_vehicles/cars/AB-123-CD
アイデアは、Web サービスのルートに表示される概念の数を制限することです。
エントリ内のコレクションは、エントリの一部にアクセスするために使用されます。次に例を示します。
/cars/AB-123-CD/engine/spark_plugs/1
ID が「AB-123-CD」である車の最初のスパーク プラグの URI として適している可能性があります。ネストされたコレクションは、「コンテナ」の削除がそのすべての部分の削除を意味する場合はいつでも意味があります。
DELETE /cars/AB-123-CD
明らかに削除します:
/cars/AB-123-CD/engine/spark_plugs/1
車の他のすべての部品 (車は DELETE によってスクラップに送られると考えてください)。
質問: この種の「クリーンな URI」は非常に一般的なニーズですが、そのような Web サービスの構築を簡素化するソフトウェアはありますか?
Atom Publication Protocol (AtomPub) は、Web サービスのビジョンが私が望むものに非常に近い場合に適している可能性があるようですが、ネストされたコレクションをサポートしていないようです。