Çok sayıda IoT aygıtının verilerini işleyen bir sunucuda bulunan bir REST API ile çalışıyorum.
Görevim, söz konusu cihazlar hakkında belirli performans bilgilerini toplamak için API'yi kullanarak sunucuyu sorgulamak.
Bir örnekte, kullanılabilir cihazların ve bunlara karşılık gelen tanımlayıcıların bir listesini edindim, daha sonra bu tanımlayıcıları (GUID'ler) kullanarak daha fazla ayrıntı için sunucuyu sorguladım.
Sunucu 500 Internal Server Error
bu kimliklerden birinde bir sorgu için döndürüyor . Uygulamamda bir istisna atıldı ve hatayla ilgili ayrıntıları göremiyorum. Yanıtı Postman'la daha yakından incelersem, sunucunun aşağıdakileri içeren gövdede JSON'u iade ettiğini görebilirim:
errorMessage: "This ID does not exist"
.
Sunucunun kimliğe başlamasını sağladığı gerçeğini göz ardı edin - bu, geliştirici için ayrı bir sorundur.
Bir REST API'sinin 500 Internal Server Error
, bir sorgunun var olmayan bir nesneye başvurduğunu bildirmesi için döndürmesi gerekir mi? Benim düşünceme göre, HTTP cevap kodları kesinlikle API'nin iç mekaniğinden ziyade REST çağrısının durumuna atıfta bulunmalıdır. İlgili 200 OK
API’ye özel bir hata ve açıklama içeren bir yanıt beklerdim .
Bana göre, REST çağrısının nasıl yapılandırıldığına bağlı olarak beklentide potansiyel bir fark var.
Bu örnekleri göz önünde bulundurun:
http://example.com/restapi/deviceinfo?id=123
http://example.com/restapi/device/123/info
İlk durumda, cihaz kimliği bir GET değişkeni olarak iletilir. Bir 404 veya 500, yolun ( /restapi/deviceinfo
) bulunmadığını veya bir sunucu hatasıyla sonuçlandığını gösterir.
İkinci durumda, cihaz kimliği URL'nin bir parçasıdır. Daha anlayışlı olurdum 404 Not Found
, ama yine de yolun hangi kısımlarının son noktalara karşı değişken olarak yorumlandığına dayanarak tartışabilirim.