Ассоциация юридических лиц в службе REST - PullRequest
1 голос
/ 09 июля 2010

У меня есть служба моделирования REST предметов и контейнеров. Элементы - это отдельные атомарные объекты, контейнеры - это объекты, которые содержат элементы. Как бы я смоделировал эти отношения RESTful?

Например, вот запрос на товар:

http://server/items/1
=> {"name": "Item 1"}

Предположим, что товар находится в контейнере:

http://server/containers/1
=> [{"name": "Item 1"}, {"name": "Item 2"}...]

Как бы я смоделировал добавление элемента в контейнер? Или удаление предмета из контейнера? Предметы ничего не знают о контейнерах, в которых они находятся, поэтому PUT для этого предмета не будет работать. Контейнеры знают, какие элементы они содержат, но чтобы положить их в контейнер, сначала необходимо загрузить весь контейнер (потенциально очень большой).

В данный момент я отправляю сообщение в контейнер, но параметр запроса 'action' имеет запах кода:

http://server/containers/1?action=add
POST {"name": "Item 1"}

Есть ли лучший способ для этого?

1 Ответ

1 голос
/ 09 июля 2010

Одним из наиболее распространенных применений POST является добавление подчиненного ресурса. Поэтому просто используя,

http://server/container/1
POST {"name": "Item 1"}

будет достаточно. Чтобы удалить предмет из контейнера, вы можете сделать,

DELETE http://server/container/1/Item/1
...