API tanpa keputusan dan API dengan ralat memerlukan dua tindakan berbeza. Carian yang berjaya mungkin tidak mengembalikan lokasi dalam skop yang dirujuk. Ralat rangkaian, had tercapai atau sumber tidak tersedia pula menghalang kesimpulan daripada carian.
Untuk ROOTE, periksa jawapan HTTP kemudian status perniagaan, koleksi yang diharapkan dan liputan. Langkah ini mengelakkan paparan "tiada tandas" apabila panggilan Perkhidmatan gagal atau "tiada hentian" selepas masa tamat.
Membaca tiga tahap jawapan
| Tahap | Apa yang perlu diperiksa | Kesimpulan kemungkinan |
|---|---|---|
| Pengangkutan | Sambungan, masa dan status HTTP | Adakah permintaan berjaya? |
| Kontrak | JSON sah, versi dan medan yang dijangka | Adakah jawapan boleh digunakan? |
| Keputusan perniagaan | status, koleksi, liputan, amaran dan meta | Apa yang diketahui dalam skop yang diminta? |
Kod HTTP 200 tidak mencukupi untuk mengesahkan carian. Jawapan boleh menunjukkan pelaksanaan separa atau status ralat. Sebaliknya, 404 pada laluan bukan cara biasa untuk menyatakan koleksi kosong: semak URL dan kontrak.
Memahami success, empty, partial dan error
| Status | Cadangan tindakan |
|---|---|
| success | Paparkan entiti selepas pengesahan dan kekalkan had |
| empty | Nyatakan tiada keputusan untuk carian ini |
| partial | Paparkan maklumat yang boleh digunakan dengan amaran mereka |
| error | Anggap carian sebagai tidak tersedia; jangan simpulkan tiada lokasi |
Ketiadaan keputusan berkaitan permintaan dan sumber diketahui. Ia tidak membuktikan tiada perkhidmatan secara fizikal. Liputan tidak menyeluruh, penapis ketat atau had boleh mengehadkan keputusan.
Pokok keputusan untuk antara muka anda
1. La requête a-t-elle abouti ?
Non → indisponibilité réseau ou délai dépassé.
2. Le statut HTTP est-il acceptable selon le contrat ?
Non → traiter le code et le message d'erreur.
3. Le JSON respecte-t-il le schéma attendu ?
Non → réponse inexploitable, jamais "aucun résultat".
4. Le statut métier est-il error ?
Oui → recherche indisponible.
5. Le statut est-il partial ou la couverture limitée ?
Oui → résultats utilisables + avertissement.
6. La collection attendue est-elle vide ?
Oui → aucun résultat retourné dans ce périmètre.
Non → afficher les résultats et leurs limites.
Periksa parameter mengikut susunan betul
Periksa dahulu latitud dan longitud, susunan dan bandar diperoleh. Seterusnya pastikan unit jejari dan kosa kata penapis. API Perkhidmatan guna types=toilets; URL peta guna modes=toilets. Parameter ini milik kontrak berbeza.
Luaskan satu dimensi pada satu masa: tambah jejari dalam had laluan atau keluarkan penapis untuk ujian jelas. Simpan rekod permintaan asal. Jika meluaskan automatik, beritahu pengguna skop baru.
Bina carian API berdasarkan koordinat GPS
Urus sumber tidak tersedia tanpa kehilangan yang lain
Jawapan separa mungkin mengandungi lokasi dari sumber yang berjaya tetapi ada yang gagal. Simpan keputusan, atribusi dan amaran berkaitan. Jangan anggap senarai lengkap atau ganti medan hilang dengan nilai palsu.
Maklumat lama dalam cache juga berguna jika polisi anda benarkan. Ia mesti dikenali sebagai lama. Masa terima permintaan anda tidak mengubah umur pemerhatian asal.
Sesuaikan mesej dan susulan
| Situasi | Mesej untuk sesuaikan pada antara muka anda | Tindakan |
|---|---|---|
| empty | Tiada keputusan dalam kawasan dengan penapis ini | Ubah kawasan atau penapis |
| partial | Sebahagian keputusan tersedia; carian tidak lengkap | Paparkan keputusan dan amaran |
| Ralat pengesahan | Carian mengandungi parameter tidak sah | Betulkan permintaan |
| Pengesahan atau hak | Akses ini tidak benarkan carian ini | Periksa akaun atau token |
| Had atau ketidaktersediaan | Carian sementara tidak tersedia | Patuh arahan susulan |
Untuk 429, rujuk arahan perkhidmatan dan Retry-After jika ada. Ralat 400 perlukan pembetulan argumen; ulang permintaan tidak selesaikan. Jangan tukar 401 jadi panggilan tanpa nama jika pengguna sudah beri token.
Uji empat keadaan sebelum siar
Sediakan jawapan ujian lengkap, kosong, separa, ralat, JSON tidak sah dan tamat masa. Periksa mesej dipaparkan, keputusan disimpan dan jumlah susulan. Ujian penting: kerosakan tidak hasilkan kenyataan tiada perkhidmatan.
Gunakan peraturan ini untuk pembantu AI
Soalan Lazim
Adakah senarai kosong buktikan tiada tandas?
Tidak. Ia hanya menunjukkan tiada keputusan untuk carian ini dan sumber diperiksa.
Bolehkah paparkan jawapan separa?
Ya, jika entiti digunakan sah dan amaran serta had disimpan.
Perlukah ulang setiap ralat?
Tidak. Betulkan ralat parameter atau akses; hadkan susulan untuk kes insiden sementara dan ikut arahan perkhidmatan.