Ilustrasi alur kerja WA Lookup untuk Menangani Nilai avatar_url yang Dikembalikan WA Lookup
Gambaran visual alur kerja yang dibahas dalam artikel WA Lookup ini.

Kolom avatar_url adalah bagian dari respons ws_avatar yang paling sering mengejutkan sebuah integrasi, karena nilainya bisa berupa string kosong dan karena URL adalah sesuatu yang sangat berbeda untuk disimpan dibandingkan boolean.

WA Lookup mengembalikan kolom avatar_url di setiap respons ws_avatar yang berhasil. Nilainya berupa string kosong jika tidak ada URL yang tersedia, sehingga integrasi sebaiknya menyimpannya terpisah dari boolean avatar yang menyertainya dan menangani nilai kosong secara eksplisit.

Modelkan boolean dan URL secara terpisah

Boolean avatar dan string avatar_url menjawab pertanyaan yang berbeda: apakah avatar terdeteksi, dan dari mana avatar tersebut dapat diambil. Menggabungkan keduanya ke dalam satu kolom nullable akan menghilangkan jawaban pertama setiap kali jawaban kedua tidak ada, padahal ketiadaan adalah hasil yang normal, bukan kasus tepi. Dua kolom membuat kedua jawaban tetap terbaca.

Putuskan apakah Anda menyimpan URL sama sekali

Beberapa integrasi hanya membutuhkan boolean, dan dalam kasus itu membuang URL akan menghilangkan sekelompok pertanyaan tentang retensi sepenuhnya. Jika Anda tetap menyimpannya, simpan juga tanggal pemeriksaan di sampingnya, karena informasi profil berubah dan URL yang tersimpan adalah gambaran sesaat dari kondisi pada saat pemeriksaan, bukan alamat permanen.

Perlakukan pengambilan sebagai urusan terpisah

Mengambil apa pun yang ditunjuk oleh sebuah URL adalah operasi yang berbeda dari menjalankan pemeriksaan, dengan mode kegagalan dan waktunya sendiri. Memisahkan keduanya berarti masalah pengambilan tidak akan pernah terlihat seperti masalah pemeriksaan di log Anda, dan hal ini penting saat Anda mencoba mencari tahu mengapa suatu batch terlihat salah.

Tangani ketiadaan nilai tanpa percabangan di mana-mana

Normalkan respons sekali di batas integrasi Anda — ubah kolom opsional menjadi representasi eksplisit yang dipahami kode Anda — alih-alih menguji keberadaannya di setiap titik pemanggilan. Nilai yang tidak ada cukup umum sehingga pemeriksaan yang tersebar menjadi sumber utama bug yang sebenarnya bisa dihindari.

FAQ

Haruskah avatar_url disimpan tanpa batas waktu?

Jika Anda menyimpannya, simpan bersama tanggal pemeriksaan, karena informasi profil berubah dan nilainya adalah gambaran sesaat, bukan alamat permanen.

Apa arti avatar_url yang tidak ada?

Artinya layanan upstream tidak menyediakannya untuk akun tersebut pada saat pemeriksaan. Boolean avatar tetap melaporkan apakah avatar terdeteksi.

Apakah pengambilan dilakukan sebagai bagian dari pemeriksaan?

Tidak. Pemeriksaan mengembalikan kolom; mengambil apa yang ditunjuk oleh sebuah URL adalah operasi terpisah dengan mode kegagalannya sendiri.

Sumber