2011-12-30 13 views
8

C# adresindeki bir .net web uygulaması üzerinde çalışıyorum ve bir üçüncü tarafdan REST hizmetini kullanmam gerekiyor (WCF kullanmıyorlar). Bir WSDL'nin mevcut olduğu ve Visual Studio'nun temeldeki tüm kodları oluşturacağı web servis çağrılarını kullanmanın geçmişinden geliyorum ve sonra gitmeye hazırım.En İyi Yolu NET'te REST API'sinden JSON'u Kullanmak İçin

Bu davranışı bir dereceye kadar simüle edebilecek bir araç veya çerçeve yok mu? Anlaşmadan, bir aracın ne beklemesi gerektiğini bilmesinin bir yolu olmadığını anlıyorum ama bir REST çağrısı yapmak için parametreler sağladığım ve sihirbazın cevabın ayrıntılarını çalışmasına yardımcı olacak bir sihirbazdan geçebileceğimi düşünürdüm. İşlemin sonunda, web hizmetinin nasıl davrandığına benzer REST API'sini modelleyen bir nesne kümesi olurdu.

REST ve JSON'un kendilerine büyük avantajlar sunduğunu biliyorum, ancak otomatik kod oluşumuna izin vermek için standart bir kutu dışı sözleşmenin olmaması gerçek bir geri adım gibi görünüyor.

Açık bir şey eksik mi, yoksa yalnızca .NET'teki REST'i tüketirken mevcut durum mu? Her yeni API için gerçekten kazan plaka kodunu yazmam gerekiyor mu?

+0

Bunun hiç yardımcı olacağından emin değilim ancak RESTful WCF WADL projesine göz atmak isteyebilirsiniz: http://wadl.codeplex.com/ –

+0

REST servisine HTTP üzerinden bağlanabilirseniz 80 numaralı bağlantı noktasında, Visual Studio'yu kullanarak ona bağlanabilmeli ve sizin için oluşturulmuş kodları kullanabilmeniz gerekir. Neyi kaçırıyorum? – phil

+0

Phil, bunun bir örneği var mı? Referansı bir referans referansı olarak mı ekliyorsunuz? Örneğin, bu url [link] (http://api.justin.tv/api/clip/show/1278312.json?jsonp=) geçerli bir json nesnesini geri getirir, bunu nasıl eklersiniz? – Kywillis

cevap

2

WCF REST Starter Kit All up page'a bakmanızı öneririm. Burada

İndir: WCF REST Starter Kit Preview 2

Belgeleme burada: 'HttpClient ile tüketen RESTful Hizmetleri' aşağı WCF Rest Starter Kit GUide Kaydırma

Sen ReadAsJasonDataContract örneğin kullanarak sona ereceği

HttpResponseMessage resp = http.Get("friends_timeline.json"); 
resp.EnsureStatusIsSuccessful(); 
ProcessStatusesAsDataContract(resp.Content.ReadAsJsonDataContract<statusList>()); 

Bu gibi gözüküyor makul üzerinde biraz daha ellerini olmak gibi hissediyorum ve kendi web isteklerini yapıyor ve Json.NET kullanarak daha sonra daha büyük bir performans eek istiyorsanız How-2 on CodeProject

nasıl yapılır seri hale getirme işlemi iyi bir seçenek değildir. JSON.Net (JSON.Net bir meslektaşı tarafından yazılmıştır)

+0

.NET 3.5 çalıştırıyorsanız, başlangıç ​​setinin gerekli olduğunu biliyorum, ancak .NET 4 kullanıyorsam ne olur? –

+0

Evet. Üzgünüm, daha net olmalı. Gerekli serialize/deserailize türleri, .NET 4'te doğal olarak bulunur. –

+0

REST Başlangıç ​​seti eski bir yıl önceydi. Bu konudaki en son çalışma şudur: http://wcf.codeplex.com –

5

REST API'sine erişmek için RestSharp'u kullanabilirsiniz. this SO question'da veri aktarım nesnesinden etki alanı modeline gitmek için AutoMapper kullanma yaklaşımını içeren bir örnek verdim.

İlgili konular