Мені було цікаво, чи не традиційний макет на зразок цього:
api/Products
GET // gets product(s) by id
PUT // updates product(s) by id
DELETE // deletes (product(s) by id
POST // creates product(s)
Чи було б корисніше однини та множини, наприклад:
api/Product
GET // gets a product by id
PUT // updates a product by id
DELETE // deletes a product by id
POST // creates a product
api/Products
GET // gets a collection of products by id
PUT // updates a collection of products by id
DELETE // deletes a collection of products (not the products themselves)
POST // creates a collection of products based on filter parameters passed
Отже, для створення колекції продуктів ви можете:
POST api/Products {data: filters} // returns api/Products/<id>
І тоді, для посилання на нього, ви можете зробити:
GET api/Products/<id> // returns array of products
На мою думку, головна перевага таких способів полягає в тому, що це дозволяє легко кешувати колекції продуктів. Наприклад, можна покласти на колекцію продуктів цілу годину, тим самим різко скоротивши дзвінки на сервері. Звичайно, в даний час я бачу лише гарну сторону того, щоб робити справи таким чином, у чому мінус?