2012-11-19 18 views
6

मेरे पास एक आरामदायक सेवा है जहां संग्रह में से एक सीमित है (यूएक्स कारणों से)। इस मामले में इसकी 25 वस्तुओं की टोपी है। यदि इससे अधिक हो तो संसाधनों को हटाया जाना चाहिए इससे पहले कि अधिक जोड़ा जा सके। एक उदाहरण के रूप में अगर एक ग्राहक प्रस्तुत:HTTP स्थिति कोड?

POST http://somesite.com/api/v2/stuff 
{"cool":"stuff"} 

और वहाँ सामान में < 25 चीजें हैं:

200 OK 

अगर सामान में> 25 बातें:

??? 

DELETE http://somesite.com/api/v2/stuff/:id 

POST http://somesite.com/api/v2/stuff 
{"cool":"stuff"} 

200 OK 

क्या सबसे अच्छा कोड है इसके लिए? सीधे 400? 40 9 CONFLICT? 429? कोई भी काफी सही नहीं लगता ..

+2

40 9 संघर्ष मुझे सही लगता है, क्योंकि (ए) यह एक संसाधन राज्य समस्या है और (बी) यह उपयोगकर्ता हल करने योग्य है। – Alohci

उत्तर

8

उपयोग 409 httpbis section 7.5.8 से:। संसाधन की वर्तमान स्थिति से विरोध की वजह से

"अनुरोध पूरा नहीं किया जा सकता है इस कोड को केवल स्थितियों में, जहां में अनुमति दी है यह अपेक्षा की जाती है कि उपयोगकर्ता संघर्ष को हल करने में सक्षम हो और अनुरोध पुनः सबमिट कर सके। उपयोगकर्ता को संघर्ष के स्रोत को पहचानने के लिए पेलोड में पर्याप्त जानकारी शामिल होनी चाहिए। "

आपके मामले में, संसाधन एक http://somesite.com/api/v2/stuff द्वारा की पहचान है, और POST अनुरोध अपनी वर्तमान स्थिति के साथ कोई विरोध (जो कि यह पहले से ही बाहर maxed है) की वजह से पूरा नहीं किया जा सकता है। आपकी प्रतिक्रिया में, मौजूदा सदस्यों में से एक को हटाने के लिए उपयोगकर्ता को पर्याप्त जानकारी (अधिमानतः लिंक) दें, सीमा तक, या कुछ अन्य कार्रवाई करें। फिर वे मूल अनुरोध पुनः सबमिट कर सकते हैं।

+0

हाँ विवरण फिट बैठता है और मैंने सोचा कि यह सबसे अच्छा हो सकता है। संघर्ष सिर्फ थोड़ा सा लगता है .. कच्चे = | – Scott

संबंधित मुद्दे