次のような URL があるとします。
POST /departments
は新しい部門
をPOST /employees
作成し、 は新しい従業員を作成します。
どちらの URL も、新しく作成されたリソースなどのロケーション ヘッダーを返します。
従業員が複数の部門に所属できるとします。
対応する URL をどのように構成しますか?最も重要なのは、この操作を実行するために POST と PUT のどちらを使用するかです。例: Bill を本部門に追加するには、次のようにします。
POST /departments/Books/employees/Bill
または:
PUT /departments/Books
{
"employee" : "Bill"
}
前者の方が意味的に正しいように見えます。なぜなら、とにかくPOST
体には、この新しい関係を特徴付けるより多くのデータがあるからです。さらに
GET /employee/Bill
以下によって返されるものとは異なる本体を返します。
GET /departments/Books/employees/Bill
したがって、関係を追加することは、新しいリソースを作成するようなものです。
POST /departments/Books/employees/Bill
ただし、URL で新しいリソースに明示的に名前を付けているという事実は好きではありません。