2011-10-31 7 views
9

का पालन करें और एक RESTful API के माध्यम से एक व्यक्ति का अनुसरण समाप्त करने के लिए, मेरे पास हैएक अस्थायी एपीआई पोस्ट/शरीर में वापसी वापस क्या करना चाहिए?

  • पोस्ट/व्यक्ति/बॉब/पालन
  • DELETE/व्यक्ति/बॉब/पालन

क्या करना चाहिए में इन वापसी तन?

  1. हर किसी का एक संग्रह आप
  2. व्यक्ति तुम सिर्फ पीछा पालन/अनुसरण रद्द कर
  3. {स्थिति: "ठीक है"} की तरह एक स्थिति
  4. कुछ भी नहीं।

उत्तर

5

यह सब आपके ऐप/एपीआई डिज़ाइन और अनुबंध पर निर्भर करता है जिसे आप क्लाइंट/कॉलर्स के साथ परिभाषित करेंगे। लेकिन आम तौर पर, सभी मामलों में आपको अपने ग्राहक को परिणाम के बारे में जागरूक करने के लिए स्टेटस कोड वापस करना चाहिए।

तरह: respond(ResponseCode::OK, ...)

POST के लिए: मैं वापसी चाहते हैं 'बॉब' वस्तु उनके अनुयायियों + स्थिति कोड
के सभी युक्त DELETE के लिए: मैं केवल स्थिति कोड वापस चाहते हैं।

+1

बॉब के सभी प्रकार हजारों चीजें हो सकती हैं। यह आदर्श से कम है। –

+1

आप सही हैं, इसलिए मैंने कहा कि यह ऐप डिज़ाइन पर निर्भर करता है। लेकिन, मान लीजिए कि आप एक एमवीसी फ्रेमवर्क (रेल, एएसपीएनटी एमवीसी ...) का उपयोग कर रहे हैं: जैसा कि आप एक पर्सनल कंट्रोलर एक्शन को कॉल कर रहे हैं, तो आपका क्लाइंट एक ही प्रकार (व्यक्ति) का ऑब्जेक्ट प्राप्त करने की उम्मीद कर रहा है या कम से कम उस के साथ लपेटा गया है प्रकार। – yek

6

यदि आप HTTP सर्वर स्थिति का उपयोग कर त्रुटियों पर प्रतिक्रिया देते हैं, तो स्थिति कोड कुछ भी नहीं कहता है। यदि कोई उपयोगकर्ता बॉब नहीं है, तो कोई 404 नहीं मिला है, या यदि डेटाबेस टूट गया है तो 500 आंतरिक सर्वर त्रुटि, तो केवल एक ही सफल प्रतिक्रिया जो आपको मिलेगी वह ठीक है। उपयोगकर्ताओं को स्थिति कोड की जांच करने की आवश्यकता नहीं है, उन्हें केवल HTTP स्थिति कोड जांचना होगा।

मेरा सुझाव है कि आप कुछ भी वापस न करें, और तथ्य यह है कि यह एक सफल प्रतिक्रिया है (यानी 200 ओके या 204 कोई सामग्री नहीं) इंगित करता है कि ऑपरेशन सफल रहा।

3

आम तौर पर, एक एपीआई के लिए, मैं एक परिभाषित स्थिति के साथ हमेशा ठीक के बजाय HTTP स्टेटस कोड का उपयोग करने के लिए क्षमा चाहता हूं। इसका मतलब है कि आप उत्तर के लिए मौजूदा मानकों का पालन कर सकते हैं, और कोई भी जो त्रुटि कोड प्राप्त करता है उसे पता चलेगा कि क्या हुआ/उन्हें क्या करना है। एक उपयोगी संदर्भ मैनुअल के लिए विकी आलेख http status codes पर एक नज़र डालें।

इसके अलावा, त्रुटि कोड के साथ, और क्योंकि एक एपीआई है जिसके बारे में हम बात कर रहे हैं, त्रुटि के बारे में एक और वर्णनात्मक संदेश होना उपयोगी है। त्रुटि की तरह कुछ सार्थक: "ऑथ टोकन गायब", या जो भी मानक आप साथ आ सकते हैं।

जब संसाधन बनाने की बात आती है, तो मैं आम तौर पर 201 (निर्मित) और संसाधन के साथ उत्तर देता हूं। ध्यान रखें कि आप संसाधन से कुछ विशेषताओं को बहिष्कृत करना चाहते हैं (उदाहरण के लिए आप उपयोगकर्ता बना रहे हैं, आपको एन्क्रिप्टेड पासवर्ड जैसी संवेदनशील जानकारी वापस नहीं करनी चाहिए)

संसाधनों को हटाने के संबंध में, आमतौर पर या तो 200 (ठीक) या 202 (स्वीकृत) और कोई अतिरिक्त जानकारी नहीं है।

फिर भी, जैसा कि @yek ने उल्लेख किया है, यह अत्यधिक एपीआई उपभोक्ता के साथ प्रतिबद्धता पर निर्भर करता है। सबसे महत्वपूर्ण बात यह है कि आप एपीआई को सौभाग्य से दस्तावेज करते हैं और समझाते हैं कि अपेक्षाओं को क्या होना चाहिए।

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