मैं WebApi का उपयोग करके एक RESTful वेब सेवा को डिज़ाइन कर रहा हूं और सोच रहा था कि वस्तुओं को अपडेट / निर्माण करते समय वापस आने के लिए HTTP प्रतिक्रियाओं और प्रतिक्रिया निकायों का क्या मतलब है।
उदाहरण के लिए, मैं कुछ JSON को वेब सेवा में भेजने के लिए POST विधि का उपयोग कर सकता हूं और फिर एक ऑब्जेक्ट बना सकता हूं। क्या तब (201) या ठीक (200) HTTP स्थिति को सेट करने के लिए सबसे अच्छा अभ्यास है और बस "नया कर्मचारी जोड़ा" जैसे संदेश लौटाएं, या मूल रूप से भेजे गए ऑब्जेक्ट को वापस करें?
वही PUT विधि के लिए जाता है। किस HTTP स्थिति का उपयोग करना सबसे अच्छा है और क्या मुझे उस वस्तु को वापस करने की आवश्यकता है जो बनाई गई थी या सिर्फ एक संदेश? इस तथ्य को ध्यान में रखते हुए कि उपयोगकर्ता जानता है कि वे किस वस्तु को बनाने / अपडेट करने का प्रयास कर रहे हैं।
कोई विचार?
उदाहरण:
नया कर्मचारी जोड़ें:
POST /api/employee HTTP/1.1
Host: localhost:8000
Content-Type: application/json
{
"Employee": {
"Name" : "Joe Bloggs",
"Department" : "Finance"
}
}
मौजूदा कर्मचारी को अपडेट करें:
PUT /api/employee HTTP/1.1
Host: localhost:8000
Content-Type: application/json
{
"Employee": {
"Id" : 1
"Name" : "Joe Bloggs",
"Department" : "IT"
}
}
जवाब:
निर्मित / अद्यतन वस्तु के साथ प्रतिक्रिया
HTTP/1.1 201 Created
Content-Length: 39
Content-Type: application/json; charset=utf-8
Date: Mon, 28 Mar 2016 14:32:39 GMT
{
"Employee": {
"Id" : 1
"Name" : "Joe Bloggs",
"Department" : "IT"
}
}
केवल संदेश के साथ प्रतिक्रिया:
HTTP/1.1 200 OK
Content-Length: 39
Content-Type: application/json; charset=utf-8
Date: Mon, 28 Mar 2016 14:32:39 GMT
{
"Message": "Employee updated"
}
केवल स्थिति कोड के साथ प्रतिक्रिया:
HTTP/1.1 204 No Content
Content-Length: 39
Date: Mon, 28 Mar 2016 14:32:39 GMT
UPDATE/INSERT ... RETURNING
SQL के लिए Postgresql संस्करण के समान है । यह अत्यंत उपयोगी है, विशेष रूप से क्योंकि यह नए डेटा को प्रस्तुत करता है और अद्यतन संस्करण परमाणु के लिए अनुरोध करता है।