null vs kunci hilang dalam REST API Response [ditutup]

40

Katakan dalam aplikasi saya, beberapa pengguna memberi kami nama belakang mereka, dan yang lain tidak. Dalam respons API REST, badan mana yang lebih disukai:

Dengan nilai "null":

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

Atau hanya kunci yang hilang:

{"firstName": "Bob"}
jtmarmon
sumber

Jawaban:

31

Pertimbangkan untuk menghapus nilai kosong atau nol.

Jika properti adalah opsional atau memiliki nilai kosong atau nol, pertimbangkan untuk menjatuhkan properti dari JSON, kecuali ada alasan semantik yang kuat untuk keberadaannya.

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

Bacaan Lebih Lanjut
Panduan Gaya Google - Nilai Properti Kosong atau Null
Haruskah nilai nol dimasukkan dalam respons JSON dari REST API?

Robert Harvey
sumber
terima kasih untuk tautannya, Robert. jadi bahkan jika currentlyPlayingakan ada dalam beberapa tanggapan dan bukan yang lain, lebih disukai untuk memiliki klien memeriksa apakah kuncinya ada atau tidak daripada memeriksa apakah itu nol?
jtmarmon
nulldan undefinedmemiliki arti yang hampir sama dalam Javascript, dan Anda dapat memeriksa keduanya menggunakanif (myProperty == null)
Robert Harvey
nah sebenarnya dalam kasus saya klien mungkin java, objektif-c, atau javascript. tautan dalam tautan kedua (API-craft) menunjukkan kepada saya bahwa null cocok dengan kasus penggunaan semantik kami, tetapi sebagian besar bahwa saya hanya harus membuat keputusan dan berpegang
teguh
Sederhana: Jika aplikasi perlu membedakan antara nilai yang berbeda, maka server harus memberikan nilai yang berbeda, jika tidak maka tidak perlu dan tidak boleh. Apakah aplikasi Anda perlu membedakan antara kunci yang tidak ada, kunci memiliki string kosong sebagai nilai, dan kunci yang memiliki nilai nol?
gnasher729
3
The jawaban di posting ini alamat beberapa alasan bagus mengapa Anda tidak harus menghapus bidang null.
Dave New