Я пытаюсь завершить работу над структурой URL для списка пожеланий на сайте, над которым я работаю.Это довольно простая модель, у пользователя может быть много списков желаний, и каждый список желаний может содержать много товаров.
В настоящее время у меня есть очевидные CRUD-URL для управления самим списком желаний:
GET account/wishlists.json
GET account/wishlists/{id}.json
POST account/wishlists.json?name=My%20Wishlist
POST account/wishlists/{id}.json?name=My%20New%20Name
DELETE account/wishlists/{id}.json
Однако,Я не думаю, что знаю, как структурировать URL, которые бы добавляли / удаляли продукт в список желаний: (* 1006 *
Вот мои текущие варианты:
1) Предложите добавить продукт как часть URL-адреса и используйте HTTP-глагол, чтобы определить мое действие
POST account/wishlist/{id}/product/{product_id}.json
DELETE account/wishlist/{id}/product/{product_id}.json
или
2 ) Выполните действие как частьURL и идентификатор продукта как часть полезной нагрузки
POST account/wishlist/{id}/add.json?product_id={product_id}
POST account/wishlist/{id}/remove.json?product_id={product_id}
(1) являются чистыми и, насколько я могу судить, довольно RESTful, но не позволяют легко добавлять несколько продуктов и т. Д.
Я также немного обеспокоен использованием глагола DELETE - я не удаляю продукт или список желаний, я просто удаляю одно из другого.
(2) более явноно отклоняется от REST - я бы не просто ссылался на ресурс вURL, я бы имел в виду операцию на этом ресурсе: (
Любой совет по поводу того, что из вышеперечисленного было бы более правильным, был бы очень полезен!(Если есть третий вариант, который лучше моего, не стесняйтесь меня поправлять!)