Mi sono chiesto se, piuttosto che un layout più tradizionale come questo:
api/Products
GET // gets product(s) by id
PUT // updates product(s) by id
DELETE // deletes (product(s) by id
POST // creates product(s)
Sarebbe più utile avere un singolare e un plurale, ad esempio:
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
Quindi, per creare una collezione di prodotti che potresti fare:
POST api/Products {data: filters} // returns api/Products/<id>
E poi, per fare riferimento, potresti fare:
GET api/Products/<id> // returns array of products
A mio parere, il vantaggio principale di fare le cose in questo modo è che consente una facile memorizzazione nella cache delle raccolte di prodotti. Si potrebbe, ad esempio, mettere una vita di un'ora su raccolte di prodotti, riducendo così drasticamente le chiamate su un server. Certo, al momento vedo solo il lato buono del fare le cose in questo modo, qual è il rovescio della medaglia?