複数のアカウントを持つ顧客があるとします。実際には、他の複雑なオブジェクトと "1対多の"関係を持つデータオブジェクトはすべて行います。"関連する"リソースのRESTデザイン
例は次のようになります。
{ id: 1, name: "Bob", accounts: [ { id: 2, name: "Work account" }, { id: 3, name: "Home account" } }
私の質問は、それがが顧客のサブリソースとして、対独立したリソースとしてを占めて公開するために、より良い/適切な場合、ありますか?または両方?
たとえば、私の最初の直感は、次のようになります。/customers/1
上記のオブジェクトを返します。いずれかのアカウントを変更する場合は、POST
〜/accounts/2
にする必要があります。
(私はいくつかのAPIで見てきた)、それについて移動する他の方法は、上記の配列を返す別のルート/customers/1/accounts
を公開することであり、その後、APIのユーザーはの配列を変異させることができるようにそこにPOST
/PATCH
ルートを設定しますアカウント。
そのアプローチと私の問題は、アカウントの配列は、実際には「参照によって含まれる」されている場合、それはRESTルートはアカウントを変更しているか、それは単に顧客との間でリンケージを変更するかどうかを実際に明確ではないということですアカウント。
ここにベストプラクティスがありますか?
API層のモデルをしていない、としばしばいけないん、マップ1:データ層への1をモデル。 –