Лучший опыт

REST API: как они работают и что вам нужно знать.

REST API: как они работают и что вам нужно знать.

Содержание
Что такое REST API?
Шесть правил REST API
1 Разделение клиент-сервер
2 Единый интерфейс
3 Без гражданства
4 Многоуровневая система
5 Возможность кеширования
6 Код по запросу (необязательно)
REST API против SOAP API
Зачем использовать REST API?
Как использовать REST API
Примеры REST API
Не спать в ОТДЫХЕ

В наш век интеграции обмен данными между системами важен как никогда.

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

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

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

Прежде чем начать, вы должны быть знакомы с тем, что такое API-интерфейсы и как они работают.

Что такое REST API?

Чтобы понять REST, нам нужно сначала рассмотреть некоторые фундаментальные термины:

  • Клиент является человек или программа, использующая API. Клиент делает запросы к API, чтобы получить некоторую информацию или что-то изменить в приложении. Ваш веб-браузер является клиентом – он взаимодействует с API различных веб-сайтов, чтобы получать от них содержимое страницы. Запрошенная информация отправляется обратно в ваш браузер и отображается на вашем экране.
  • Ресурс является любая информация, что API может предоставить клиенту. Например, ресурсом в API Facebook может быть пользователь, страница, фотография или публикация. Каждый ресурс имеет уникальное имя, называемое идентификатором ресурса.
  • Сервер используется приложением, которое принимает запросы клиентов, и содержит ресурсы, которые клиент хочет. Сервер имеет API для взаимодействия с клиентами, не предоставляя им прямого доступа к контенту, хранящемуся в его базе данных.

Теперь о нашем определении. REST – это набор рекомендаций, которые программное обеспечение может использовать для связи через Интернет, чтобы сделать интеграцию простой и масштабируемой. REST API (также называемый RESTful API) – это особый тип API, который следует этим рекомендациям.

REST расшифровывается как передача репрезентативного состояния. Это означает, что когда клиент запрашивает ресурс, используя REST API, сервер передает обратно текущее состояние ресурса в стандартизированном представлении .

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

Допустим, я хочу создать программу, которая интегрируется с YouTube. Моя программа (клиент) может запрашивать у REST API YouTube информацию о конкретном видео (ресурсе). API YouTube ответит на мой запрос состоянием ресурса, которое включает такие атрибуты, как имя видео, дата публикации и количество просмотров, а также ссылка на видео, все упакованные в формате, который моя программа может быстро проанализировать и использовать. Моя программа также может размещать видео (т. Е. Добавлять новый ресурс) на мой личный канал YouTube через API.

Теперь, когда мы знаем о преимуществах REST API, давайте подробно рассмотрим, что отличает REST API от других типов API.

Шесть правил REST API

Чтобы в полной мере воспользоваться функциональностью, предоставляемой REST, API-интерфейсы должны соответствовать шести требованиям. (Ну, технически требуется пять, а одно – необязательно.) Каждое требование закладывает основу для быстрого и универсального API.

1 Разделение клиент-сервер

В архитектуре REST клиент и сервер могут взаимодействовать только одним способом: клиент отправляет запрос на сервер, а затем сервер отправляет ответ обратно клиенту. Серверы не могут делать запросы, а клиенты не могут отвечать – все взаимодействия инициируются клиентом.

Упрощая обмен данными между клиентами и серверами, RESTful API обеспечивают удобную независимость этих двух интерфейсов. Таким образом, клиентское программное обеспечение может расширять свои сборки, не беспокоясь о влиянии на другие серверы, а содержимое сервера может быть изменено без непреднамеренного воздействия на клиентов.

2 Единый интерфейс

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

Без стандартизированной связи перевод запросов и ответов между программным обеспечением был бы полным беспорядком. Незначительные расхождения могут привести к беспорядку и потере информации, и приложениям придется обновлять свои процессы запросов всякий раз, когда API обновляют свои. Единый интерфейс исключает эту возможность.

Для большинства REST API этот общий язык – HTTP или . HTTP не был создан специально для REST. Скорее, REST принял этот протокол связи как стандарт для приложений, которые его используют.

Чтобы использовать HTTP с REST API, клиент отправляет запрос в определенном формате, который может показаться вам знакомым. Например, запрос видеоданных к API YouTube выглядит так:

GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails 

Как и все запросы к REST API, этот запрос содержит две части информации:

  • GET – это метод HTTP. Это определяет действие, которое клиент хочет произвести с ресурсом. Клиент может сделать четыре основных HTTP-запроса:

    • GET: получить ресурс.
    • POST: для создания нового ресурса.
    • PUT: для редактирования или обновления существующего ресурса.
    • УДАЛИТЬ: удалить ресурс.
  • https: //… – это URL. URL-адрес содержит унифицированный идентификатор ресурса или URI, который указывает целевой ресурс.

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

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

показан формат видеоресурса Youtube, отформатированный в JSON. Можете ли вы определить некоторые из различных предоставленных ресурсов?

3 Без гражданства

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

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

4 Многоуровневая система

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

Этот принцип требует, чтобы сообщения между клиентом и целевым сервером всегда форматировались и обрабатывались одинаково, независимо от уровней, находящихся между ними. Дополнительные уровни не должны влиять на взаимодействие клиент-сервер.

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

5 Возможность кеширования

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

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

6 Код по запросу (необязательно)

Последний принцип REST необязателен. При желании API может отправлять клиентам компьютерный код в своем ответе. Это дает клиенту возможность запускать код в своем собственном сервере.

Пока API придерживается этого набора правил, он считается RESTful. Однако эти правила оставляют разработчикам достаточно места для настройки функций своего API. Эта гибкость отличает REST API от другого распространенного метода веб-API, Simple Object Access Protocol (SOAP).

REST API против SOAP API

REST обычно сравнивают с SOAP, другим способом создания приложений, работающих через HTTP. Основное различие между REST и SOAP заключается в том, что REST – это набор рекомендаций, а SOAP – это протокол. REST позволяет создавать API с помощью любого метода, включая HTTP, URL-адреса и JSON. SOAP использует только XML для отправки данных.

REST считается более простой и эффективной альтернативой SOAP, поскольку он требует написания меньшего количества кода для выполнения задач и следует менее жесткой структуре и логике, чем SOAP. Кроме того, REST устанавливает ограничения для проектирования API, но оставляет множество вариантов на усмотрение разработчика, создающего API.

Зачем использовать REST API?

Фреймворк REST был представлен компьютерным ученым Роем Филдингом в 2000 году, и сегодня он определяет то, как мы просматриваем, изменяем и передаем контент в Интернете. Многие из самых популярных веб-компаний и облачных компаний используют REST API для своих приложений, включая Facebook, YouTube, и Google.

Но почему REST? По сути, это отличная система для веб-приложений. Вот основные преимущества этого типа API:

  • REST API гибки. Они могут обрабатывать многие типы запросов и отправлять данные в разных форматах.
  • REST API масштабируемы. Они предназначены для связи между любыми двумя частями программного обеспечения, независимо от размера или возможностей. По мере роста веб-приложения и добавления дополнительных ресурсов его REST API сможет быстро обрабатывать увеличивающееся количество и разнообразие запросов.
  • API-интерфейсы REST включают существующие веб-технологии, что упрощает их создание и использование. Чтобы запросить ресурс через REST API, вам просто нужно указать его URL.

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

Документация веб-приложений с общедоступными API-интерфейсами будет доступна в разделе «для разработчиков» на их веб-сайтах. Здесь вы найдете инструкции о том, как получить доступ к API и использовать его вместе с вашим собственным программным обеспечением. Если API построен на принципах REST, это, вероятно, будет указано в документации.

Для использования многих API-интерфейсов требуется ключ API. Ключ API – это уникальная строка символов, которую поставщик API предоставляет разработчику для авторизации доступа к своему API. Ключи API часто отправляются с клиентскими запросами для идентификации клиента серверу. Держите свои ключи API в секрете. Если ваш ключ попадет в чужие руки, он может быть использован для некоторых не очень хороших вещей, по-видимому, от вашего имени.

Чтобы протестировать общедоступный API, используйте инструмент, который может структурировать HTTP-запросы, например . Попробуйте использовать различные HTTP-методы и URL-адреса и посмотрите, что произойдет.

Примеры REST API

Вы можете найти REST API по всему Интернету – вы, вероятно, использовали некоторые из них сегодня, не осознавая этого. Вот несколько примеров:

API позволяет сторонним приложениям читать и записывать данные. Используйте его, чтобы писать и публиковать твиты, делиться твитами и читать профили. Этот API особенно эффективен для загрузки и анализа большого количества твитов на определенные темы. Узнайте больше об использовании API в нашем руководстве.

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

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

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

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

Не спать в ОТДЫХЕ

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

Программные инструменты могут создавать удивительно мощные и инновационные системы, работая вместе, что является частью любой развивающейся онлайн-платформы. Если вы хотите подключить свое приложение к миру программного обеспечения, не спите на REST.

Источник записи: