खेल के लिए देर हो सकती है लेकिन मैं REST API बनाने की कोशिश करते हुए इस शब्दार्थ मुद्दे पर लड़खड़ा गया।
विरिकन के उत्तर पर थोड़ा विस्तार करने के लिए, मुझे लगता है कि आप 409 Conflict
या तो उपयोग कर सकते हैं या 403 Forbidden
स्थिति के आधार पर - संक्षेप में, 403 त्रुटि का उपयोग करें जब उपयोगकर्ता संघर्ष को हल करने के लिए कुछ भी नहीं कर सकता है और अनुरोध को पूरा कर सकता है (उदाहरण के लिए वे एक बहुत नहीं भेज सकते हैं) DELETE
संसाधन को स्पष्ट रूप से हटाने का अनुरोध), या यदि संभवत: कुछ किया जा सकता है तो 409 का उपयोग करें।
सर्वर अनुरोध को समझ गया, लेकिन इसे पूरा करने से इनकार कर रहा है। प्राधिकरण मदद नहीं करेगा और अनुरोध को दोहराया नहीं जाना चाहिए। यदि अनुरोध विधि HEAD नहीं थी और सर्वर यह सार्वजनिक करना चाहता है कि अनुरोध क्यों पूरा नहीं हुआ है, तो यह इकाई में इनकार के कारण का वर्णन करेगा। यदि सर्वर क्लाइंट को यह जानकारी उपलब्ध नहीं कराना चाहता है, तो इसके बजाय स्थिति कोड 404 (नहीं मिला) का उपयोग किया जा सकता है।
आजकल, कोई "403" कहता है और एक अनुमति या प्रमाणीकरण समस्या दिमाग में आती है, लेकिन कल्पना कहती है कि यह मूल रूप से सर्वर है जो ग्राहक को बता रहा है कि वह ऐसा नहीं करने जा रहा है, इसे फिर से न पूछें, और यहाँ ग्राहक को क्यों नहीं करना चाहिए 'टी।
के रूप में PUT
बनाम POST
... POST
संसाधन के लिए एक पहचानकर्ता नहीं बनाना चाहिए जब उपयोगकर्ता के लिए किसी भी तरह है एक संसाधन का एक नया उदाहरण बनाने के लिए इस्तेमाल किया जाना चाहिए या। PUT
का उपयोग तब किया जाता है जब संसाधन की पहचान ज्ञात हो।
...
POST और UUT अनुरोधों के बीच मूलभूत अंतर Request-URI के विभिन्न अर्थों में परिलक्षित होता है। POST अनुरोध में URI उस संसाधन की पहचान करता है जो संलग्न इकाई को संभालेगा। वह संसाधन डेटा-स्वीकार करने की प्रक्रिया, कुछ अन्य प्रोटोकॉल का प्रवेश द्वार, या एनोटेशन स्वीकार करने वाली एक अलग इकाई हो सकती है। इसके विपरीत, एक पीयूटी अनुरोध में यूआरआई अनुरोध के साथ संलग्न इकाई की पहचान करता है - उपयोगकर्ता एजेंट जानता है कि यूआरआई क्या है और सर्वर अनुरोध को किसी अन्य संसाधन पर लागू करने का प्रयास नहीं करता है। यदि सर्वर की इच्छा है कि अनुरोध को एक अलग यूआरआई पर लागू किया जाए,
यह 301 भेजना चाहिए (स्थायी रूप से स्थानांतरित) प्रतिक्रिया; उपयोगकर्ता एजेंट MAY तब अनुरोध को पुनर्निर्देशित करने या न करने के संबंध में अपना निर्णय लेता है।