Saya telah bertanya-tanya apakah, daripada tata letak yang lebih tradisional seperti ini:
api/Products
GET // gets product(s) by id
PUT // updates product(s) by id
DELETE // deletes (product(s) by id
POST // creates product(s)
Apakah akan lebih bermanfaat untuk memiliki bentuk tunggal dan jamak, misalnya:
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
Jadi, untuk membuat koleksi produk yang mungkin Anda lakukan:
POST api/Products {data: filters} // returns api/Products/<id>
Dan kemudian, untuk referensi itu, Anda mungkin melakukan:
GET api/Products/<id> // returns array of products
Menurut pendapat saya, keuntungan utama melakukan hal-hal dengan cara ini adalah memungkinkan caching koleksi produk yang mudah. Seseorang mungkin, misalnya, menempatkan satu jam seumur hidup pada koleksi produk, sehingga secara drastis mengurangi panggilan pada server. Tentu saja, saat ini saya hanya melihat sisi baik dari melakukan hal-hal seperti ini, apa downside