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
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. 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?)
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.
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.
- 1. Sorgu Nesne Kalıbı (Tasarım Kalıbı)
- 2. Tasarım kalıpları için en iyi web siteleri?
- 3. MapMaker Tasarım Kalıbı?
- 4. Lütfen anti tasarım kalıbı için bir e-kitap öneriniz?
- 5. Bir API'de nesne başlatması için OO Tasarım Kalıbı
- 6. Yii2 tableName dönüş değerleri
- 7. Komut Tasarım Kalıbı - Invoker İsteğe Bağlı mı?
- 8. @ParametersAreNonnullByDefault, yöntem dönüş değerleri için de geçerlidir?
- 9. Realm Database için Tasarım Kalıbı Swift 3.1 - Singleton
- 10. Ruby'de gizli dönüş değerleri
- 11. Geri dönüş değerleri, Task.WhenAll
- 12. np.where çoklu dönüş değerleri
- 13. Python'da çoklu dönüş değerleri
- 14. Jenerikte İyi Tasarım
- 15. Bu yaygın bir tasarım kalıbı mıdır? "Tanımlayıcı düzeni"?
- 16. Python'da en iyi kaynak yöntemi nedir?
- 17. MongoDB: mesajlaşma uygulaması için en iyi tasarım
- 18. Pandalar veri çerçevesindeki tüm değerleri toplamlamanın en iyi yolu nedir?
- 19. Bir bootstrap yöntemi nedir?
- 20. Yöntem aşırı yükleme - iyi veya kötü tasarım?
- 21. Daha iyi bir paket tasarım mı?
- 22. Tercihler/Ayarlar için Android Kalıbı
- 23. En iyi java web hizmeti çerçevesi nedir?
- 24. Java web uygulamaları için en iyi 3D grafik kütüphanesi nedir?
- 25. System.Reflection GetProperties yöntemi değerleri döndürmüyor
- 26. asp.net MVC duyarlı tasarım en iyi şablon
- 27. Web paketi dış kitaplıkları için geri dönüş
- 28. C++ Nesneleri sarma için en iyi JNI Kalıbı?
- 29. Cron zamanlayıcı "devre dışı kalıbı kalıbı"
- 30. Bu tasarım kalıbının adı nedir?