Разоблачение запутанных терминологий веб-разработчиков - 2

В этой популярной фразе есть два компонента - «RESTful» и «Веб-служба». Давайте поговорим о них по очереди.

Что такое ОТДЫХ?

REST расшифровывается как передача репрезентативного состояния. Это программный архитектурный стиль. Архитектурный стиль - это не вещь сама по себе, это просто набор характеристик. Так же, как «готическая архитектура» - это стиль, но «готический собор» - это физическая вещь. Любое программное обеспечение, которое следует архитектурному стилю REST, называется RESTful, отсюда и название «веб-служба RESTful».

Стиль REST обеспечивает более эффективную связь между клиентами (код, который обрабатывает взаимодействие с пользователем и пользовательский интерфейс) и серверами (код, отправляющий данные клиенту).

Почему ОТДЫХ?

Самая важная особенность REST заключается в том, что он обеспечивает унифицированный интерфейс - набор инструкций, которым все следуют. Клиент может отправить запрос на сервер по определенному URI (единый идентификатор ресурса). Запрос обычно состоит из одной из четырех операций: PUT (обновление данных), GET (получение данных), POST (создание новых данных) и УДАЛИТЬ (удалить данные). Тогда клиент может ожидать ответа в определенном формате. Вскоре мы рассмотрим пример.

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

Эта архитектура дает разработчикам большую гибкость, поскольку теперь клиенты и серверы могут быть реализованы отдельно. Они также могут быть разработаны на любом языке программирования, с любой структурой или библиотекой, если программное обеспечение соответствует стилю REST.

Что такое веб-служба?

Веб-сервис - это программное обеспечение, которое (1) предоставляет функции для другого программного обеспечения (2) через Интернет.

Примером веб-службы RESTful является Github API. Чтобы получить информацию о пользователе Github (например, о моей учетной записи, donfour), вы можете отправить запрос GET на api.github.com/users/donfour (согласованная операция по согласованному URI).

У Github есть домен по адресуapi.github.com. Когда сервер получает запрос по маршруту /users/, он знает, что кто-то запрашивает информацию о пользователе. Затем сервер читает текст после /users/ (в данном случае donfour), ищет мои данные в базе данных, а затем возвращает данные клиенту.

Вы можете попробовать сами! Если вы введете URI в своем браузере, ваш браузер отправит запрос GET в Github, и вы получите следующий ответ:

{
  "login": "donfour",
  "id": 19992630,
  "avatar_url": "https://avatars2.githubusercontent.com/u/19992630?v=4",
  "gravatar_id": "",
  "url": "https://api.github.com/users/donfour",
  ...more information
}

Этот формат данных (согласованный формат ответа) называется JSON, сокращенно от JavaScript Object Notation. Он явно не очень удобочитаем, но идеально подходит для компьютеров. Компьютерный код может легко извлекать информацию из JSON и дополнительно манипулировать данными.

Давайте посмотрим, почему Github API - это веб-сервис. Он (1) предоставляет функции (в данном случае функцию поиска профиля пользователя) другому программному обеспечению (2) через Интернет. Теперь вы можете написать код, чтобы делать с полученными данными все, что захотите.

В чем разница между API и веб-сервисом?

Они часто появляются вместе и могут сбивать с толку. Короче говоря, API (интерфейс прикладного программирования) относится к любым методам, которые позволяют различным программным компонентам взаимодействовать друг с другом. С другой стороны, веб-сервис - это API, работающий через Интернет.

Итак, веб-сервисы - это подмножество API. Все веб-службы являются API-интерфейсами, но не все API-интерфейсы являются веб-службами.

Дальнейшее чтение

Мы рассмотрели, что такое REST и как клиент может взаимодействовать с веб-службой RESTful. Я привел достаточно подробностей, чтобы не утонуть в длинных и сложных объяснениях.

Для любопытных знайте, что REST был взят из докторской диссертации Роя Филдинга. Формально архитектурный стиль REST должен иметь 6 ограничений - клиент-сервер, без сохранения состояния, кэш, унифицированный интерфейс, многоуровневая система и код по запросу. Нет лучшего способа узнать о REST, чем прочитать саму диссертацию.

Заключение

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

Я многому научился, написав эту статью, и я надеюсь, что вы сделаете то же самое, читая ее! Если вам понравилось это читать, подумайте о прочтении других статей о сбивающей с толку терминологии веб-разработчиков!

Цель этой серии - разобраться с запутанной терминологией веб-разработчиков. Если вы не все поймете за одно прочтение, значит, я проиграл. Пожалуйста, кричите на меня в комментариях. Если вы обнаружите какие-либо ошибки, пожалуйста, также крикните мне в разделе комментариев.