ฉันสงสัยว่า, มากกว่าเลย์เอาต์แบบเดิม ๆ มากกว่านี้:
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
ในความคิดของฉันข้อได้เปรียบหลักของการทำสิ่งต่าง ๆ ในลักษณะนี้คือมันช่วยให้แคชผลิตภัณฑ์ได้ง่าย ตัวอย่างเช่นอาจใช้เวลาหนึ่งชั่วโมงในการสะสมผลิตภัณฑ์ดังนั้นลดการโทรบนเซิร์ฟเวอร์อย่างมาก แน่นอนว่าตอนนี้ฉันเห็น แต่เพียงด้านที่ดีในการทำสิ่งนี้เท่านั้นข้อเสียคืออะไร?