私たちのシステムには、アイテムを含むアカウントがあります。アイテムは常に単一のアカウントに関連付けられますが、システム内ではグローバルに一意のIDも持ちます。時には、そのidだけが分かっているときには、アイテムを操作することが望ましい場合もあります。RESTful APIは、世界的にユニークなリソースを作成します
従属リソース(アイテム)へのアクセスを所有者(アカウント)の外部から許可するのは間違っていますか?つまり、2つのURIを同じリソースに持つのは間違っていますか?
POST /inventory/accountId
#Request Body contains new item
#Response body contains new item's id
GET|PUT|DELETE /inventory/accountId/guid #obviously works and makes sense
GET|PUT|DELETE /inventory/guid #does this make sense?
おそらく、私はアイテムを作成する代わりに、項目にクエリ文字列パラメータまたはフィールドとして考慮することのアカウントを使用して、私のリソースのレイアウトを再考してはならない。これは一例ですので、ここで説明するのは少し難しいのですか?言い換えれば
POST /inventory
# Request body contains item w/ account name set on it
GET|POST|DELETE /inventory/uuid #makes sense
GET|POST|DELETE /inventory/accountId/uuid #not allowed
複数のURIをサポートするには、リダイレクトが最も効果的だと思います。それについてもう少し考えた後、私はこれを避けようとします。アカウントの下にアイテムを作成するために、場所のヘッダーを使用してリソースが作成されたURIを示すことができ、私の懸念をほとんど取り除くことができなかったことを忘れていました。 –