İstek başarısız oluyor ve sebebini bilmiyorsunuz
“API bozuk” bildirimlerinin çoğu, kim olduğunu hiç söylememiş bir istektir. Yanıt bunu genelde söyler — kimsenin okumadığı kısımda.
API Post/Get tüm HTTP metotlarını kapsıyor, istekleri koleksiyon ve klasörlere ayırıyor, başlık ve yetkilendirmeyi yönetiyor ve yanıt gövdesini sözdizimi renklendirmesiyle gösteriyor. Klavye kısayolları öğrenildiğinde tekrar döngüsünü hızlandırıyor.
Durumu değil, yanıtın tamamını okuyun
En çok zaman kazandıran alışkanlık, kırmızı duruma tepki vermek yerine hata anında yanıt gövdesini açmak. İnsanlar tarafından yazılmış API’ler sebebi oraya koyar ve bu genelde soruşturmayı bitiren tek bir cümledir.
Sonra iki taraftaki başlıklara bakın. Content-Type: application/json olmadan gönderilen bir istek, açıklanamaz görünen 400’lerin tek en yaygın sebebidir — sunucu JSON’unuzu düz metin olarak almış ve ayrıştıramamıştır.
Belirli bir anlamı olan dördü
- 401 — kimlik doğrulaması yapmadınız. Jeton eksik, bozuk ya da yanlış başlıkta.
- 403 — doğruladınız ve izniniz yok. Farklı sorun, farklı çözüm; jetonu tekrar göndermeyi bırakın.
- 404 — var olduğunu bildiğiniz bir uçta bu genelde bir yol değişkeninin boşa çözüldüğü anlamına gelir. Seçili ortamda
{{user_id}}’nin gerçekten bir değeri var mı bakın. - 422 — istek anlaşıldı, veri reddedildi. Gövde neredeyse her zaman alanın adını verir.
500 gerçekten karşı tarafın sorunu olan tek koddur ve o durumda bile bildirmeden önce aynı isteği isteğe bağlı alanlar olmadan göndermeye değer.
Zamanın çoğunun gittiği yer: yetkilendirme
Yetkilendirmeyi istek başına değil klasör düzeyinde ayarlayın. Bir bearer jetonunu on dokuz istekte tekrarlamak, jeton döndüğünde on dokuz isteği güncellemek demektir ve atladığınız tek istek yirmi dakika hata ayıklayacağınız istektir.
Jetonu da başlığa yazmak yerine ortam değişkeninde tutun. Böylece ortam değiştirmek kimliği de değiştirir — zaten değiştirirken istediğiniz şey buydu.
Gerçekten sorulan sorular
400 alıyorum ama istek doğru görünüyor, şimdi ne olacak?
Content-Type: application/json gönderdiğinizden emin olun. Düz metin olarak alınan bir JSON gövdesi tam olarak bunu üretir: doğru görünen bir istek ve ayrıştıramayan bir sunucu.
401 ile 403 arasındaki fark ne?
401 kimlik doğrulaması yapmadınız demek — eksik ya da bozuk jeton. 403 yaptınız ama izniniz yok demek. Jetonu tekrar göndermek ilkini çözer, ikincisine hiçbir şey yapmaz.
Yetkilendirme jetonu nerede durmalı?
Bir ortam değişkeninde, klasör düzeyinde uygulanmış olarak. Her isteğe elle yazmak, jeton döndüğünde hepsini güncellemek demektir ve atladığınız tek istek yirmi dakikalık hata ayıklamaya dönüşür.