Лучший способ использовать JSON из REST API в .NET - PullRequest
9 голосов
/ 30 декабря 2011

Я работаю над веб-приложением .net на c #, и мне нужно использовать REST-сервис от третьей стороны (они не используют WCF).Я исходил из опыта использования вызовов веб-сервисов, когда был доступен WSDL, и Visual Studio создаст весь базовый код, а затем я готов к работе.

Нет ли инструмента или инфраструктуры, которые могли быв какой-то степени имитировать это поведение?Я понимаю, что без контракта у инструмента нет возможности узнать, чего ожидать, но я думаю, что я мог бы пройти через мастера, где я предоставляю параметры для выполнения вызова REST, а затем помочь мастеру проработать детали ответа.В конце процесса у меня будет набор объектов, которые моделируют REST API, аналогично тому, как ведет себя веб-служба.

Я знаю, что REST и JSON имеют некоторые большие преимущества, но отсутствие стандартного контракта, позволяющего автоматическую генерацию кода, кажется реальным шагом назад.

Я что-то упускаю из виду или это просто текущее состояние при использовании REST в .NET?Мне действительно нужно писать код котельной плиты для каждого нового API?

Ответы [ 2 ]

5 голосов
/ 30 декабря 2011

Вы можете использовать RestSharp для доступа к REST API. Я привел пример, в том числе подход к использованию AutoMapper для перехода от объекта передачи данных к модели предметной области на этот вопрос SO .

2 голосов
/ 30 декабря 2011

Я бы посоветовал посмотреть на стартовый комплект WCF REST All up .

Скачать здесь: WCF REST Starter Kit Preview 2

Документация здесь: Руководство по стартовому комплекту WCF Прокрутите вниз до пункта «Использование RESTful-сервисов с помощью HttpClient»

В конечном итоге вы будете использовать ReadAsJasonDataContract, например.

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

Это выглядит как разумный How-2 в CodeProject

Если вы чувствуете, что вам нужно больше практиковаться и вы хотите добиться большей производительности, тогда выполнение собственных веб-запросов и использование JSON.NET для управления сериализацией - это еще один хороший вариант. JSON.Net (раскрытие того, что JSON.Net написан коллегой)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...