2012-04-22 7 views
11

"क्लाइंट सॉफ़्टवेयर अद्यतन आवश्यक" इंगित करने के लिए मुझे कौन सी HTTP स्थिति कोड लौटने की आवश्यकता है? उदाहरण के लिए, सर्वर ने उस डेटा के प्रारूप को बदल दिया जो इसे करने के लिए उपयोग किया जाता था, और पुराने क्लाइंट इस के साथ काम करने में सक्षम नहीं होंगे, इसलिए क्लाइंट को नए डेटा का उपयोग करने के लिए अपग्रेड करना होगा।"क्लाइंट सॉफ़्टवेयर अद्यतन आवश्यक" के लिए HTTP स्थिति कोड - क्या उपयोग करें?

मैं 404 या 410 का उपयोग नहीं करना चाहता, क्योंकि मैं यह इंगित करना चाहता हूं कि यह अभी भी एक वैध पथ है। 415? निश्चित नहीं।

+0

यह संबंधित प्रश्न का एक अच्छा जवाब है, जो बताता है कि वर्जनिंग कैसे करें, और कौन से कोड का उपयोग करना है: http://stackoverflow.com/questions/389169/best-practices-for-api-versioning – ArjunShankar

+0

अर्जुन, लिंक के लिए धन्यवाद - 3xx कोड की बात करते हुए, वे शायद अधिक अनुचित होंगे, लेकिन फिर भी उनमें से कोई भी स्थिति से काफी मेल नहीं खाता है। मेरे मामले में संसाधन स्थानांतरित नहीं हुआ है (अस्थायी रूप से या नहीं)। संसाधन वहां है, लेकिन ग्राहक को अद्यतन किया जाना चाहिए। अभी भी अस्पष्ट है कि इसके लिए कौन सा कोड उपयुक्त है। – antonio

+0

फिर एक सवाल: सर्वर कैसे जानता है कि ग्राहक को अद्यतन करने की आवश्यकता है? – ArjunShankar

उत्तर

0

यदि यह अभी भी एक वैध पथ है, तो आपके सर्वर को त्रुटि का संकेत देने के बजाय इसका समर्थन करना जारी रखना चाहिए।

यह एक सा लगता है जैसे कि आप :-)

+0

पथ वैध है, जिसका अर्थ यह है कि यह मौजूद है और अभी भी डेटा प्रदान करता है। लेकिन अगर मैं दोनों संस्करणों का समर्थन करता रहता हूं, तो मैं डेटा के कई संस्करणों को बनाए रखूंगा (जो कि कम रन में ठीक है, लेकिन लंबे समय तक ठीक नहीं है)। मैं उपयोगकर्ता को यह बताने के लिए चाहता हूं कि भले ही यह एक वैध मार्ग है, फिर भी मुझे अपने नवीनतम सॉफ्टवेयर का लाभ उठाने के लिए अपने सॉफ्टवेयर को नए संस्करण में अपग्रेड करना चाहिए। अन्यथा वह पुराने संस्करण के साथ फंस जाएगा, यह भी पुराना नहीं है। वह सोचने जा रहा है कि इसे कभी अपडेट नहीं किया गया है। – antonio

+0

क्षमा करें, मुझे अंतर दिखाई नहीं देता है। यदि आप 2xx कोड भेजते हैं, तो उपयोगकर्ता नोटिस नहीं करेंगे। यदि आप एक 4xx कोड भेजते हैं, तो ग्राहकों को तोड़ दें। मुझे नहीं लगता कि बीच में कुछ भी है। यदि आप पुराने यूआरआई को "बहिष्कृत" करना चाहते हैं, तो कुछ लोगों को पेलोड में डाल दें जो उन्हें अपग्रेड करने की आवश्यकता है। –

+0

जूलियन, मेरा प्रश्न जिज्ञासा से अधिक था। मैं कुछ हफ्तों में डेटा प्रारूप परिवर्तन करने की योजना बना रहा हूं, जिसके लिए उपयोगकर्ताओं को अपने सॉफ़्टवेयर को अपग्रेड करने की आवश्यकता होगी और मैं इसे उपयोगकर्ताओं के लिए जितना आसान बना सकता हूं। अधिकांश अपग्रेड करेंगे और बिना किसी समस्या के नई कार्यक्षमता प्राप्त करेंगे। लेकिन हमेशा कुछ ऐसे हैं जो सॉफ़्टवेयर के पुराने संस्करणों का उपयोग करते रहते हैं। मैं उनके बारे में चिंतित हूं। मैं 404 वापस नहीं करना चाहता: यह भ्रमित हो सकता है। मैंने सोचा कि यह स्थिति बहुत असामान्य नहीं है, लेकिन जाहिर है इसके लिए कोई विशिष्ट HTTP कोड नहीं है। अभी के लिए, मुझे लगता है कि मैं 415 का उपयोग करूंगा। मैं कुछ कस्टम 6xx कोड का भी उपयोग कर सकता हूं। – antonio

-5

426 नवीनीकरण गलत सवाल आवश्यक

https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

426 नवीनीकरण आवश्यक ग्राहक इस तरह के टीएलएस के रूप में एक अलग प्रोटोकॉल के लिए स्विच करना चाहिए पूछ रहे हैं /1.0, अपग्रेड हेडर फ़ील्ड में दिया गया है।

+5

यह स्थिति कोड विशेष रूप से उपयोग में प्रोटोकॉल को संदर्भित करता है, न कि क्लाइंट सॉफ़्टवेयर, इसलिए सार्वजनिक एपीआई पर इसे कार्यान्वित करना भ्रमित होगा। यहां तक ​​कि एक बंद प्रणाली में कोई भी स्थिति कोड के आधार पर अन्य कार्यक्षमता की उम्मीद कर सकता है। – orbitbot

1

अधिकांश टिप्पणीकर्ता चिंतित हैं कि आप एक ही यूआरआई का उपयोग करते समय पुराने ग्राहकों को तोड़ रहे हैं, जो एक उचित चिंता है। यही कारण है कि कई एपीआई यूआरआई में स्वयं संस्करणित हैं।

उसने कहा, क्यों 400 नहीं? अनुरोध पुराने क्लाइंट से आया था, इसलिए यह एक बुरा अनुरोध है।

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