Как лучше всего использовать веб-службы REST из .NET?





Наверное, WCF; проверить
http://hyperthink.net/blog/announcing-the-wcf-rest-starter-kit/
@Newtopian Почему? WCF по-прежнему присутствует даже в .NET 4.5
Ссылка больше не активна
Вы хотите потреблять или публиковать. Если вы хотите потреблять, например, делать запросы, лучший способ взаимодействовать с ним - это выяснить, какой тип он будет обрабатывать, как правило, JSON или XML. После того, как у вас есть тип, вы можете использовать XmlDocument или JavaScriptSerializer, чтобы получить информацию и использовать ее.
Если вы хотите создать интерфейс REST, вы, вероятно, захотите использовать либо MVC, либо REST View, либо WCF, как сказал @Brian.
Прямым и простым подходом было бы использование WebClient, который находится в пространстве имен System.Net.
Практически все, что вам нужно сделать, это передать требуемый Uri с любыми параметрами, необходимыми в форме строки запроса, и вы должны получить ответ в виде строки, будь то json или xml. Например.
using System.Net;
string param = "hello";
string url = String.Format("http://somedomain.com/samplerequest?greeting = {0}",param);
WebClient serviceRequest = new WebClient();
string response = serviceRequest.DownloadString(new Uri(url));
Затем, как упомянул Ник, вы можете использовать XmlDocument или JavaScriptSerializer для управления результатами по мере необходимости. В любом случае я предлагаю проверить документацию по нему, чтобы узнать, соответствует ли она вашим потребностям. http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx
Вам нужно будет использовать WebClient.UploadData, чтобы иметь возможность указать используемый вами метод. HttpWebRequest немного более гибкий и, возможно, больше подходит для взаимодействия с REST.
Вместо использования WebClient, такого как Kenney, вы можете использовать HttpWebRequest и HttpWebResponse и обрабатывать результат с помощью StreamReader и XmlDocument.
Это требует большего количества шаблонного кода, но фактически позволяет вам получить объект ответа, что полезно, если вам нужно просмотреть заголовки HTTP и / или любые возвращенные данные.
@Custodio, не могли бы вы добавить пример?
На мой взгляд, самый простой способ реализовать REST API - использовать Service Stack:
В своем последнем проекте Windows я доказал свою концепцию в WCF и ServiceStack, и приложение Service Stack было быстрее (вы можете искать измерения на сайте Service Stack) и проще в обслуживании (меньше кода, меньше волшебной реализации). И, что самое важное, это помогает сосредоточиться на простоте.
Существует также RestSharp, легкий компонент .NET, который позволяет легко использовать веб-службы REST.
Если бы службы REST были созданы с использованием веб-API ASP.NET, я бы использовал клиентские библиотеки Microsoft Http. (доступен пакет nuget). N.B. Похоже, это заменило клиентские библиотеки веб-API, которые перечислены на снимке экрана nuget по ссылке ниже.
Это будет работать с .NET 4, приложениями Windows Store, Windows Phone 7.5 / 8, Silverlight 4 и 5.
Теоретически вы можете использовать его для вызова любой службы REST, созданной с помощью других фреймворков.
Вот ссылка с некоторыми примерами использования класса HttpClient для вызова служб REST: Вызов веб-API из клиента .net
кажется, все это устарело :-(