REST এপিআই রেসপন্সে নাল বনাম অনুপস্থিত কী [বন্ধ]


40

আমার অ্যাপ্লিকেশনটিতে বলুন, কিছু ব্যবহারকারী আমাদের তাদের শেষ নাম দেয়, এবং অন্যরা তা দেয় না। একটি REST এপিআই প্রতিক্রিয়াতে, কোন বডিটি পছন্দ করা হয়:

একটি "নাল" মান সহ:

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

বা কেবল একটি অনুপস্থিত কী:

{"firstName": "Bob"}

উত্তর:


31

খালি বা নাল মানগুলি সরানোর বিষয়ে বিবেচনা করুন।

যদি কোনও সম্পত্তি isচ্ছিক হয় বা তার শূন্য বা শূন্য মূল্য থাকে তবে JSON থেকে সম্পত্তি বাদ দেওয়ার বিষয়টি বিবেচনা করুন, যদি না এর অস্তিত্বের জন্য দৃ strong় অর্থপূর্ণ কারণ থাকে।

{
  "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
}

আরও পড়ুন
গুগল স্টাইল গাইড - খালি বা নাল সম্পত্তির মূল্যবোধগুলি
কোনও REST API থেকে JSON প্রতিক্রিয়াগুলিতে নাল মানগুলি অন্তর্ভুক্ত করা উচিত?


লিঙ্কটির জন্য ধন্যবাদ, রবার্ট সুতরাং এমনকি যদি currentlyPlayingকিছু প্রতিক্রিয়াতে হবে এবং অন্যটি নয় তবে ক্লায়েন্টের চেক আছে কি না তা পরীক্ষা করার চেয়ে এটি বাতিল কিনা তা পছন্দনীয়?
jtmarmon

nullএবং undefinedআছে প্রায় জাভাস্ক্রিপ্ট একই অর্থ, এবং আপনি উভয়ের জন্য পরীক্ষা করতে পারবেন ব্যবহারif (myProperty == null)
রবার্ট হার্ভে

আসলে আমার ক্ষেত্রে ক্লায়েন্টটি জাভা, অবজেক্টিভ-সি বা জাভাস্ক্রিপ্ট হতে পারে। দ্বিতীয় লিঙ্কের মধ্যে থাকা লিঙ্কটি (এপিআই-ক্রাফ্ট) আমাকে ইঙ্গিত করে যে নাল আমাদের শব্দার্থক ব্যবহারের ক্ষেত্রে ফিট করে তবে বেশিরভাগ ক্ষেত্রেই আমার কেবল একটি সিদ্ধান্ত নেওয়া উচিত এবং এর সাথে
আঁকড়ে

সাধারণ: যদি অ্যাপ্লিকেশনটিকে বিভিন্ন মানের মধ্যে পার্থক্য করতে হয়, তবে সার্ভারকে অবশ্যই বিভিন্ন মান প্রদান করতে হবে, অন্যথায় এটির দরকার নেই এবং হওয়া উচিত নয়। আপনার অ্যাপ্লিকেশনটির কী কী উপস্থিত না থাকা, একটি কীকে একটি মান হিসাবে খালি স্ট্রিং এবং একটি কীটি নাল মানযুক্তের মধ্যে পার্থক্য করা দরকার?
gnasher729

3
এই পোস্টে উত্তর কিছু ভাল কারণ আপনি নাল ক্ষেত্রের কেন অপসারণ করা উচিত নয় হিসেবে ঠিকানা।
ডেভ নিউ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.