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
Kelemahannya adalah bahwa program panggilan juga harus mempluralisasi nama sumber daya, yang dapat menjadi rumit untuk bahasa klien yang tidak memiliki mekanisme pluralisasi bawaan. Jika Anda membiarkannya tunggal, lebih mudah bagi penelepon untuk mengotomatisasi pembuatan kode untuk pustaka kliennya.
Jika Anda ingin mengurangi ini, Anda dapat membuat SDK sendiri untuk layanan REST Anda. Atau, Anda bisa saja menerima pendapat dan menangani keluhan :)
sumber