Web API, http protokolünden daha doğal olarak yararlanır. Odata, birçok büyük oyuncu tarafından benimsenen Açık bir standarttır. Sadece Odata ile oynamaktan ve son zamanlarda Web API'sını keşfetmek ve biraz araştırma yapmaktan aldığım deneyimlerimden konuşabilirim.
OData harika çünkü gerçek bir standart. Kolayca bir veritabanı oluşturabilir ve HTTP üzerinden açığa çıkarabilirsiniz. Bu, herhangi bir yapılandırma yapmadan tablo yapınızı geçebileceğiniz anlamına gelir (bunu gevşek olarak söylüyorum). URL aracılığıyla, bazı hafif LINQ'ları içeren sorgular da çalıştırabilirsiniz:
/products/orders/[put some linq-ish query here]
Bu muhtemelen iyi ya da kötü. Kimlik doğrulama standarttır ve oluşturulmuştur.
Web API, benim açımdan daha ilginç. HTTP işlevselliğini (hata mesajları ve diğerleri) kullandı ve gerçek RESTful istekleri için biraz daha "yerli". Gerçekten onunla çok fazla oynamadım .. Ama etrafında okudum ve MVC ve Web API bir gün, yine, belki de iyi belki kötü bir gün "evli" olabilir "duydum" var ...
OData ile oynarken, bir Stored Proc oluşturdum, varlık yüzeyine eşledim, güçlü bir dönüş türü yapılandırdım ve daha sonra bir URL isteğine ve BANG'a bağladım, yazılan sonuç depolanmış proc'umla eşleştirilen RESTful isteğim var. Oldukça basitti ve tam olarak ihtiyacım olanı elde edebildim.
Sonuç olarak
, WCF API ile çok ayrıntılı bir şekilde oynama şansım olmadı, ancak REST'e daha saf bir yaklaşım olduğu için müşteri gelişimi için yol olduğunu söyleyebilirim. Az ya da çok "düz" ileri geri arama yapacak ve "Modelleri Görüntüle" yi alacaksanız, daha doğal bir etkileşim sağlayacaktır.
Diğer yandan. İstemci etkileşimine dayalı veriler üzerinde karmaşık (ish) sorgular yapacaksanız ve sorgu mantığını "oluşturmak" ve bir parametre olarak iletmek istiyorsanız, Odata çalışabilir.
Ben bakmak bir yapısal biçimde (tablo / ilişki yapısı anlamına gelir) verilerimi açığa ve daha sonra doğrudan bir istemci formu sorgulamak gerekiyorsa, o zaman Odata en iyi çalışır. "Diğerlerinin" verilere (doğru yetkilendirme vb. İle) erişmesine izin vermek de iyidir, bu yüzden OData protokolüne bağlı kalır
URL'yi (/ products / orders / 22) dikte ettiğiniz ve "gizli" yönetilen kodunuzdan ve veri yapınızdan karmaşık "sonuç kümeleri" oluşturduğunuz RESTful istekleri istiyorsanız VE ayrıca HTTP yanıt iletilerinden de yararlanabilirsiniz. Web API muhtemelen en iyi seçenek olacaktır.
yine, hepsi araştırma ve oyundan. Bir üretim / tam gelişmiş uygulama senaryosunda da uygulama yapmadım. Bence onların hem güçlü hem de zayıf yönleri olacak ve kesinlikle bir miktar örtüşme var