2008-09-02 19 views
9

Web servislerini kodlarken, dönüş değerlerinizi nasıl yapılandırabilirsiniz? Hata koşullarını nasıl ele alırsınız (beklenenler ve beklenmedik olanlar)? Bir int gibi basit bir şey döndürüyorsanız, sadece döndürürseniz mi yoksa daha karmaşık bir nesneye mi yerleştirdiniz? Tek bir hizmet içindeki tüm web yöntemleri tek bir sınıfın örneğini döndürüyor mu yoksa her bir yöntem için özel bir dönüş değeri sınıfı mı oluşturuyorsunuz?Web yöntemi dönüş değerleri için iyi bir tasarım kalıbı nedir?

cevap

8

Bağımsız değişkenler içeren tek bir [Operation] Request sınıfında, bağımsız değişkenlerinizin içine girdiğiniz Request/Response nesne kalıbını seviyorum.

AddCustomerRequest gibi bir şey AddCustomerResponse döndürecektir. Yanıt, işlemin başarısı/başarısızlığı, kullanıcı arabirimi tarafından kullanılabilecek mesajlar, muhtemelen eklenmiş olan müşterinin kimliği gibi bilgiler içerebilir.

Bir diğer iyi örnek, bunların tümü, genel son noktanızın Process (params IMessage [] iletileri) gibi bir şey olduğu basit bir IMessage arabiriminden türetilmesini sağlamaktır. Bu şekilde, aynı şekilde birden fazla işlem geçirebilirsiniz. Web isteği Ben'in cevabı için

1

+1. Ayrıca, genel yanıtın, yanıtın mümkün olduğunca kapsamlı ve eyleme geçmesine izin vermek için birden çok hata/uyarı maddesine izin vermeyi düşünmesini öneririm. (İlk hata mesajından sonra durdurulan bir derleyici mi yoksa olabildiğince anlatılan bir derleyici mi kullanmak istersiniz?)

1

SOAP web hizmetleri kullanıyorsanız, SOAP faults hata ayrıntılarını döndürmenin standart yoludur. Arıza mesajlarının, beğendiğiniz ek ayrıntıları ne zaman getirebileceği.

0

Sabun hataları, çağıran uygulamanın bir Sabun istemcisi olduğu standart bir uygulamadır. XMLHTTP kullanan bir COM istemcisi gibi, Sabun XML olarak ayrıştırılmış ve Sabun hataları kolayca işlenemeyen durumlar vardır. Henüz oy kullanamazsınız ama @Ben Scheirman için bir başka +1.