Использование службы REST из WCF
Я не знаком с WCF, но я думал, что узнаю, пытаясь использовать существующий сервис.
Один из API REST, о котором я думал, был Twitter API. Я думал о разработке WPF-клиента, который будет выводить на экран последние 5 твитов определенным пользователем Twitter.
Мне было интересно, если кто-то может кратко описать шаги, которые мне нужно предпринять в Visual Studio, чтобы использовать эти службы, используя WCF (классы, мастера, прокси и т.д.). Я уже знаю, как просто называть их с помощью веб-запроса и проанализируйте возвращаемый XML - я действительно хочу, чтобы часть WCF работала.
Заранее благодарю anyoine, который помогает мне продолжить образование:)
Ответы
Ответ 1
Отъезд Kirk Evans Создание клиента REST Twitter с WCF. Последние улучшения WCF в .NET 3.5 SP1 упрощают использование интерфейсов RESTful.
Также ознакомьтесь с Twitter API API API WCF 3.5 с сайта MSDN.
Здесь еще один пример - ПРЕДУПРЕЖДЕНИЕ по ссылке 2/3/10 "borked"
Ответ 2
Нет никакой пользы от использования WCF для использования API на основе Http, такого как API Twitter. System.Net.HttpWebRequest более чем достаточно. На самом деле я подозреваю, что у вас будут трудности. WCF намного проще работать, когда у вас есть WCF на обоих концах провода.
Однако, если REST API возвращает содержимое Atom, вы можете использовать классы System.ServiceModel.Syndication, чтобы помочь разобрать ответ.
EDIT:
Поскольку я написал это сообщение, Microsoft выпустила предварительный просмотр новой клиентской библиотеки HTTP, которая еще лучше использует ресурсы RESTful.
Вот как вы могли бы использовать его для POST для twitter:
var client = new HttpClient();
client.DefaultHeaders.Authorization = Credential.CreateBasic("username","password");
var form = new HttpUrlEncodedForm();
form.Add("status","Test tweet using Microsoft.Http.HttpClient");
var content = HttpContent.Create(form);
var resp = client.Post("http://www.twitter.com/statuses/update.xml", content);
Если вы хотите получить более подробную информацию об этой клиентской библиотеке, я сейчас пишу некоторые сообщения в блоге об этом здесь.