Статьи

Несколько отличных способов использовать RESTful API в C #

Для полной и актуальной версии статьи посетите:  https://code-maze.com/different-ways-consume-restful-api-csharp/

Занимаясь веб-разработкой, вы рано или поздно сталкиваетесь с необходимостью иметь дело с внешними API (интерфейсом прикладного программирования). В этой статье моя цель — составить наиболее полный список способов использования API RESTful в ваших проектах на C # и показать вам, как это сделать, на нескольких простых примерах. После прочтения этой статьи вы получите более полное представление о том, какие варианты доступны для вас и как выбрать правильный вариант в следующий раз, когда вам нужно использовать RESTful API.

Что такое RESTful API?

Итак, прежде чем мы начнем, вам может быть интересно, что такое API и что такое часть RESTful?

Проще говоря, API — это слои между программными приложениями. Вы можете отправить запрос в API, а взамен вы получите ответ от него. API-интерфейсы скрывают все мелкие детали конкретной реализации программного приложения и предоставляют интерфейс, который вы должны использовать для взаимодействия с этим приложением.

Весь интернет — это одна большая паутина, созданная из API. Мы используем API для обмена информацией между приложениями. У нас есть API практически для всего. Большинство сервисов, которыми вы пользуетесь ежедневно, имеют свои собственные API (GoogleMaps, Facebook, Twitter, Instagram, погодные порталы …)

Часть RESTful означает, что API реализован в соответствии с принципами и правилами REST (Transfer State State), который является базовым архитектурным принципом сети. API-интерфейсы RESTful в большинстве случаев возвращают простой текст, JSON или XML-ответ. Более детальное объяснение REST выходит за рамки этой статьи, но вы можете прочитать больше о REST в нашей статье Лучшие рекомендации по REST API .

Как использовать RESTful API

Хорошо, давайте перейдем к мясной части всей этой истории.

Есть несколько способов использовать RESTful API в C #:

  1. HttpWebRequest / класс ответа
  2. Класс WebClient
  3. Класс HttpClient
  4. Пакет RestSharp NuGet
  5. ServiceStack Http Utils

У каждого из них есть свои плюсы и минусы, поэтому давайте рассмотрим их и посмотрим, что они предлагают.

В качестве примера, мы будем собирать информацию о репо-релизах RestSharp и датах их публикации через GitHub API. Эта информация доступна публично, и вы можете увидеть, как выглядит необработанный ответ JSON: RestSharp релизы .

Мы собираемся использовать помощь библиотеки Json.NET для десериализации полученного нами ответа. Кроме того, для некоторых примеров мы собираемся использовать встроенные механизмы десериализации библиотек. Вам решать, какой путь вы предпочитаете, потому что ни один путь не является правильным. (Вы можете увидеть реализацию обоих механизмов в исходном коде ).

В результате следующих нескольких примеров я ожидаю получить десериализованный JArray (для простоты), который содержит информацию о выпуске RestSharp. После этого мы можем выполнить итерацию, чтобы получить следующий результат.

HttpWebRequest / Класс ответа

Это специфичная для HTTP реализация  WebRequest класса, которая первоначально использовалась для обработки HTTP-запросов, но она устарела и заменена классом.

В  HttpWebRequest предлагает класс мелкозернистого контроля над каждым аспектом процесса запроса решений. Как вы можете себе представить, это может быть обоюдоострым мечом, и вы можете легко потерять огромное количество времени на настройку ваших запросов. С другой стороны, это может быть именно то, что вам нужно для вашего конкретного случая.

HttpWebRequest Класс не блокирует пользовательский интерфейс, который, я уверен , что вы согласитесь с этим, очень важно.

HttpWebResponse Класс предоставляет контейнер для входящих ответов.

Это простой пример того, как использовать API с помощью этих классов.


Джава