REST API रिस्पांस में बंद बनाम गायब कुंजी [बंद]


40

मेरे आवेदन में कहें, कुछ उपयोगकर्ता हमें अपना अंतिम नाम देते हैं, और अन्य नहीं। REST API प्रतिक्रिया में, किस निकाय को प्राथमिकता दी जाती है:

"शून्य" मान के साथ:

{"firstName": "Bob",
 "lastName": null}

या सिर्फ एक लापता कुंजी:

{"firstName": "Bob"}

जवाबों:


31

खाली या अशक्त मानों को हटाने पर विचार करें।

यदि कोई संपत्ति वैकल्पिक है या उसके पास रिक्त या शून्य मान है, तो संपत्ति को JSON से छोड़ने पर विचार करें, जब तक कि उसके अस्तित्व का एक मजबूत अर्थगत कारण न हो।

{
  "volume": 10,

  // Even though the "balance" property's value is zero, it should be left in,
  // since "0" signifies "even balance" (the value could be "-1" for left
  // balance and "+1" for right balance.
  "balance": 0,

  // The "currentlyPlaying" property can be left out since it is null.
  // "currentlyPlaying": null
}

इसके अलावा पढ़ना
Google स्टाइल गाइड - खाली या अशक्त संपत्ति का मूल्य
एक REST API से JSON प्रतिक्रियाओं में शून्य मान शामिल होना चाहिए?


लिंक के लिए धन्यवाद, रॉबर्ट। यहां तक ​​कि अगर currentlyPlayingकुछ प्रतिक्रियाओं में होगा और अन्य नहीं, तो ग्राहक की जांच करना बेहतर होगा कि क्या कुंजी है या नहीं, बल्कि जांच करें कि क्या यह अशक्त है?
jtmarmon

nullऔर undefinedराशि लगभग जावास्क्रिप्ट में एक ही अर्थ है, और आप दोनों के लिए जाँच कर सकते हैं का उपयोग करif (myProperty == null)
रॉबर्ट हार्वे

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

सरल: यदि एप्लिकेशन को विभिन्न मूल्यों के बीच अंतर करने की आवश्यकता है, तो सर्वर को अलग-अलग मूल्य प्रदान करना होगा, अन्यथा इसकी आवश्यकता नहीं है और नहीं होना चाहिए। क्या आपके ऐप को मौजूद नहीं होने के बीच अंतर करने की ज़रूरत है, एक कुंजी के पास एक मूल्य के रूप में एक खाली स्ट्रिंग है, और एक महत्वपूर्ण शून्य मान है?
gnasher729

3
इस पोस्ट में जवाब कुछ अच्छे कारणों से आप अशक्त क्षेत्रों क्यों नहीं निकाल चाहिए के रूप में पते।
डेव न्यू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.