2010-12-02 16 views
11

हमारी टीम रीस्टफुल एप्लिकेशन विकसित कर रही है ... हम "सर्वोत्तम अभ्यास" दृष्टिकोण पर बहस कर रहे हैं।REST: 404 HTTP स्टेटस कोड मैपिंग

फ़िल्टर-जैसी क्वेरी के लिए 404 स्थिति कोड प्रतिक्रिया वापस करनी चाहिए? कहो मेरी प्राप्त यूआरएल

.../1 ​​/ सेवा/startsWith/a.json

है और यह सभी मूल्यों है कि मेरे डेटाबेस में एक साथ शुरू देता है ... लेकिन अगर कोई "एक" मान पाए जाते हैं क्या मुझे बस एक खाली जेसन स्ट्रिंग के साथ स्टेटस कोड 200 वापस करना चाहिए? या स्थिति कोड 404.

धन्यवाद!

उत्तर

15

this प्रश्न देखें, मेरे उत्तर के अपडेट में मैं आपकी समस्या का समाधान करता हूं। विशेष रूप से इस बिट,

मुझे लगता है कि है कि क्या वापसी 404 के जवाब पर निर्भर करता है संसाधन है कि पुनः प्राप्त किया जा रहा है क्या। यह एक खोज परिणाम का प्रतिनिधित्व है, या यह उत्पाद का प्रतिनिधित्व है? इसे जानने के लिए आपको पर लिंक संबंध देखने के लिए वास्तव में यूआरएल पर ले जाने की आवश्यकता है।

यदि यूआरएल उत्पाद प्रस्तुतिकरण वापस लौटाता है तो कोड मौजूद नहीं होने पर 404 वापस किया जाना चाहिए। यूआरएल एक खोज परिणाम देता है तो यह वापस नहीं चाहिए एक 404.

अंतिम परिणाम है कि क्या यूआरएल तरह लग रहा है का निर्धारण करने कारक नहीं है। ऐसा कहकर, यह सम्मेलन है कि क्वेरी स्ट्रिंग का उपयोग को खोज परिणामों को वापस करने के लिए किया जाता है, इसलिए यह यूआरएल की उस शैली का उपयोग करने के लिए सहज है जब आप 404s वापस नहीं करना चाहते हैं।

+5

हाँ, मैं डैरल से सहमत हूं। बस, "कोई परिणाम नहीं" एक वैध खोज परिणाम है। संसाधन मौजूद है, यह प्रतिनिधित्व केवल "खाली" है। तो, 404 उचित नहीं है। एक पहचानकर्ता (/ ग्राहक/123) द्वारा एक ठोस संसाधन के लिए पूछना जो कि 404 वारंट नहीं है। यह कोई प्रश्न नहीं है, यह एक सूचक का "अव्यवस्था" है। –

3

204 कोड लौटने के लिए यह अधिक समझदार हो सकता है, जिसका अर्थ है 'कोई सामग्री नहीं'। यह थोड़ा अधिक कुशल होगा क्योंकि 204 स्थिति में कोई दस्तावेज़ सामग्री नहीं हो सकती है, साथ ही आप प्रतिक्रिया को पार्स करने के बजाय कोड का पता लगा सकते हैं।

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