Mi chiedevo 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 raccolta di prodotti 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 avviso, il vantaggio principale di fare le cose in questo modo è che consente una facile memorizzazione nella cache delle raccolte di prodotti. Ad esempio, si potrebbe dedicare un'ora di vita a raccolte di prodotti, riducendo drasticamente le chiamate su un server. Naturalmente, attualmente vedo solo il lato positivo di fare le cose in questo modo, qual è il rovescio della medaglia?