2013-03-13 28 views
9

Başka bir kaynağın bir parçasını oluşturan bir kaynak için istendiğinde doğru yanıt kodu & iletisiyle ilgili bir kılavuzluk arıyorum. ÖrneğinEksik üst kaynak için API kodu/iletisi

, bir GET isteği:

kullanıcılar/{id} Kullanıcı bulunamadı kullanıcı kaynağın bir mesajla, bir 404 döneceğini yok

. Aşağıdaki dönüş Kullanıcı kaynak bulunursa gereken Sorum şu

:

kullanıcılar/{id}/arkadaş

Şu anda ilk örnekte olduğu gibi aynı kod/mesajı iade ediyorum . Özellikle arkadaş kaynağına ilişkin bir mesaj atmalı mıyım? Kişisel olarak, daha büyük bir URI zincirine sahip olmanız durumunda, API istemcisinin üst kaynağın bulunmadığını bilmesini sağlamak için daha yararlı olduğunu düşünüyorum.

cevap

6

Bu özel örnekte, istemcinin bir arkadaş olmayan bir kullanıcı için bir istek isteğini ayırt etmesine izin vermesi ve arkadaşlarının yalnızca bir arkadaşı olmayan bir kullanıcı için istekte bulunması, en mantıklı olacağını düşünüyorum. ilk durumda 404 ve ikincide boş bir set ile 200 döndürmek için. Başka bir deyişle, "hiçbiri" arkadaşlar için geçerli bir değerdir. Bir kullanıcının var olduğu bir durum yoktur, ancak (potansiyel olarak boş) arkadaş listesi yoktur, dolayısıyla ana kaynak için 404 yayınlama konusunda hiçbir belirsizlik yoktur.

+0

OP'le aynı şeyi düşünüyorum ve bu benim kullanım durumum için de doğru yol gibi geliyor. Davanıza daha fazla eklemek için, [Wikipedia] (https://en.wikipedia.org/wiki/List_of_HTTP_status_codes), "404" için müşterinin sonraki taleplerinin izin verildiğini belirtir ". Bunun doğru olduğunu düşünüyorum çünkü bir noktada bu kimliğe sahip bir kullanıcının var olmaya başlayacağı, bir “400” ise, istemcinin hata nedeniyle talebin kötüye gittiğini ve gelecekte hiçbir zaman geçerli olmayacağını ima eder. – djskinner

1

400 Bad Request üstbilgisini döndürmek isteyebilir ve hata iletisini yanıtın gövdesine yerleştiririm. Maalesef bu senaryoda doğru ya da yanlış bir cevap yoktur, bu yüzden sizin ve uygulamanız için en iyi olanı seçin.

İlgili konular