मैं सोच रहा था अगर, इस तरह से एक और अधिक पारंपरिक लेआउट के बजाय:
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
मेरी राय में, इस तरह से चीजें करने का मुख्य लाभ यह है कि यह उत्पादों के संग्रह के आसान कैशिंग के लिए अनुमति देता है। उदाहरण के लिए, उत्पादों के संग्रह पर एक घंटे का जीवनकाल लगाया जा सकता है, इस प्रकार यह सर्वर पर कॉल को काफी कम कर देता है। बेशक, मैं वर्तमान में केवल इस तरह से चीजों को करने का अच्छा पक्ष देख रहा हूं, नकारात्मक पक्ष क्या है?