В век интеграций обмен данными между системами очень важен. Для совместной работы программные приложения используют интерфейсы прикладного программирования или API. API-интерфейсы помогают отправлять данные туда и обратно.
Ваш сайт электронной коммерции может взаимодействовать с платежным ПО, ПО для доставки и любыми другими необходимыми интеграциями через соответствующие API.
Существует множество подходов к созданию API, но если вы заинтересованы во внедрении программной интеграции в свой продукт, вам следует знать один особый метод: REST API. В этой статье мы расскажем об этом методе более подробно.
Прежде чем рассмотреть понятие REST API, давайте определимся с некоторыми терминами:
REST API — это способ взаимодействия сайтов и веб-приложений с сервером. Термин состоит из двух аббревиатур: API (Application Programming Interface) — это код, который позволяет двум приложениям обмениваться данными с сервера, REST (Representational State Transfer) — это способ создания API с помощью протокола HTTP.
REST означает передачу репрезентативного состояния. То есть когда клиент запрашивает ресурс с помощью REST API, сервер возвращает текущее состояние ресурса в стандартном виде.
Другими словами, REST API работает, отправляя запросы на ресурс и возвращает всю необходимую информацию о ресурсе, которая уже переведена в понятный формат для клиента. Клиент в свою очередь также может изменить элементы на сервере и даже добавлять новые элементы через REST API.
Пример: предположим, что мы хотим создать программу, которая интегрируется с YouTube. Наша программа (клиент) может запрашивать у REST API YouTube информацию о конкретном видео (ресурсе).
API YouTube ответит на наш запрос состоянием ресурса, которое включает такие атрибуты, как название видео, дата публикации, количество просмотров и ссылка на видео. Все это будет упаковано в формат, который наша программа может быстро проанализировать и использовать. Наша программа также может размещать видео (т. е. добавлять новый ресурс) на наш личный канал YouTube через API.
Теперь, когда вы знаете о преимуществах REST API, давайте рассмотрим отличия REST API от других типов API.
Чтобы в полной мере использовать функциональные возможности REST, API-интерфейсы должны соответствовать шести требованиям. Давайте рассмотрим каждый из них:
В архитектуре REST клиент и сервер могут взаимодействовать только одним способом: клиент отправляет запрос на сервер, затем сервер отправляет ответ обратно клиенту. Серверы не могут делать запросы, а клиенты не могут отвечать на них — все взаимодействия инициируются клиентом.
Чтобы упростить связь между клиентом и сервером, API-интерфейсы RESTful делают их удобными и независимыми. Таким образом, клиентское ПО может расширять свои сборки, не беспокоясь о том, что это повлияет на какие-либо другие серверы, а содержимое сервера может быть изменено без воздействия на клиентов.
Все запросы и ответы должны следовать общему протоколу и способу форматирования сообщений. Приложения и серверы написаны на разных языках, которые не очень хорошо работают вместе без посредника. Единый интерфейс — это общий язык, на котором любой клиент может общаться с любым REST API.
Без единой связи между запросами и ответами в программах был бы полный беспорядок. Небольшие несоответствия могут привести к тому, что информация потеряется, а приложениям придется обновлять свои процессы запросов каждый раз, когда API-интерфейсы обновляют свои. Единый интерфейс исключает эту возможность.
Для большинства REST API общим языком является HTTP. Чтобы использовать HTTP с REST API, клиент отправляет запрос в определенном формате. Например, запрос к API YouTube для видеоданных выглядит так:
Как и все запросы к REST API, этот запрос содержит две части информации:
GET — это HTTP-метод, он указывает на действие, которое клиент хочет выполнить с ресурсом. Клиент может сделать четыре основных HTTP-запроса:
https://… — это URL-адрес, который содержит универсальный идентификатор ресурса или URI, который указывает целевой ресурс.
В этом случае URL-адрес называется конечной точкой, поскольку это место, где API фактически взаимодействует с клиентом.
После получения и проверки запроса хост возвращает информацию о целевом ресурсе в формате JSON, который представляет все содержимое в удобочитаемом формате.
На этой странице документации API YouTube показан формат видеоресурса в формате JSON.
Помимо простого взаимодействия между клиентом и сервером, есть множество других функций. Эти серверы или уровни предназначены, чтобы повысить безопасность, обработку и распределения трафика.
Важно чтобы сообщения между клиентом и целевым сервером всегда форматировались и обрабатывались одинаково, независимо от слоев, которые находятся между ними. Дополнительные слои не должны влиять на взаимодействие.
Источник: hubspot.com
Я даю согласие OOO «ЭсБилдер» (далее «BINN») на обработку моих персональных данных в соответствии со статьями 6, 9, 10, 18 Федерального закона от 27 июля 2006 года № 152-ФЗ «О персональных данных», указанных в онлайн-форме и/или предоставленных мною с целью:
Способы обработки персональных данных могут быть любыми, включая сбор, систематизацию, накопление, хранение, уточнение, обновление, изменение, воспроизведение, обезличивание, блокирование и уничтожение.
Настоящее согласие применяется в отношении обработки следующих данных: имя, номер телефона, адрес электронной почты (E-mail).
Настоящее согласие предоставляется сроком на пять лет. По истечении указанного срока действие согласия считается продленным на каждые следующие пять лет при отсутствии сведений о его отзыве.
Согласие может быть отозвано мною в любой момент путем направления в BINN подписанного мною письменного заявления.