Я не так хорошо знаком с WCF, но думал, что научусь, пытаясь использовать существующую службу.
Один из REST API, о котором я подумал, был Twitter API. Я подумал о разработке клиента WPF, который будет просто выводить на экран последние 5 твитов определенного пользователя Twitter.
Мне было интересно, может ли кто-нибудь вкратце описать шаги, которые мне нужно предпринять в Visual Studio, чтобы использовать эти службы, используя WCF (классы, мастера, прокси и т. д.). Я уже знаю, как просто вызвать их с помощью веб-запроса и проанализировать XML, который возвращается - я действительно хочу увидеть работу WCF.
Заранее спасибо любому, кто помогает мне в дальнейшем обучении :)
... и если вам нужно больше примеров того, как определение контрактов WCF для служб, отличных от WCF, является проблемой, см. здесь stackoverflow.com/questions/2180676/…





Нет никаких преимуществ в использовании WCF для использования API на основе Http, такого как Twitter API. System.Net.HttpWebRequest более чем достаточно. На самом деле я подозреваю, что у вас возникнут некоторые трудности. WCF намного проще начать работать, когда у вас есть WCF на обоих концах сети.
Однако, если REST API возвращает содержимое Atom, вы можете использовать классы System.ServiceModel.Syndication, чтобы помочь проанализировать ответ.
Обновлено: С тех пор, как я написал этот пост, 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);
Если вам нужны более подробные сведения об этой клиентской библиотеке, я сейчас пишу несколько сообщений в блоге об этом здесь.
А вы, сэр, выиграете "самую неправильную" награду. Создание DataContracts для представления удаленных данных и предоставление возможности различным сериализаторам .NET выполнять грязную работу - огромная победа.
Создав веб-сервисы с помощью ASMX, WCF, System.ServiceModel.Web и P&P's Web Services Software Factory и потратив последний год на REST-сервисы, я могу заверить вас, что мой опыт не согласуется с вашим утверждением.
@TheSoftwareJedi Я призываю вас создать контракт данных, который будет успешно десериализовать XML-ответы, которые вы получаете от twitter API. Если вы опубликуете решение, я удалю свой ответ.
DataContracts ограничены очень в том, что они могут делать при обработке xml. Я согласен с мнением Даррела, HttpWebRequest намного проще, чем иметь дело со всем стеком WCF, который не может десериализовать много содержимого xml, будь то смешанный контент, атрибуты или децентрализованная расширяемость (пространства имен).
Обратите внимание на Кирка Эванса Создание REST-клиента Twitter с помощью WCF. Последние улучшения WCF в .NET 3.5 SP1 упрощают многие интерфейсы RESTful.
Также проверьте Библиотека объявлений API Twitter WCF 3.5 с сайта MSDN.
Вот еще один пример - ВНИМАНИЕ по состоянию на 03.02.10 ссылка "боркалась"
если целью является образование, учтите, что WCF может быть не самой подходящей средой для ПОТРЕБЛЕНИЯ REST API. правильный инструмент для правильной работы, и вы, возможно, взяли здесь кувалду, когда все, что вам нужно, это отвертка ... если вам нужен совет, прочитайте ответ Даррела.