Что такое API сайта или приложения
API — это набор протоколов, подпрограмм и других инструментов для создания сайтов или приложений. API регламентирует, как клиент и сервер могут взаимодействовать друг с другом.
API помогает отделить одно приложение от другого, находясь между системами. API накладывает свои правила на запрос клиента и ответ от сервера. Благодаря этому приложения работают согласованно и данные защищены с обеих сторон.
Что такое REST API
REST API — это регламент, по которому веб-приложения взаимодействуют с сервером. Название этой технологии состоит из двух компонентов:
- REST (Representational State Transfer) — технология создания API на основе протокола HTTP;
- API (RESTful) — код для взаимодействия приложений.
Перед тем как начать пользоваться REST API, нужно проверить код по семи критериям:
- Client-Server — отделение клиента от сервера. Клиент, который создает API-соединение — это пользовательский интерфейс: поисковая строка или кнопка. В RESTful код запроса остаётся у клиента, а код для доступа к данным — на сервере. Благодаря этому легче перенести пользовательский интерфейс на другую платформу;
- Cacheable — кэшируемость. В запросе к серверу должна содержаться информация о кэшировании данных в буфере. Если указано, что данные должны кэшироваться, клиент может запрашивать данные из буфера;
- Uniform Interface — единство интерфейса. Все данные должны запрашиваться с одного URL стандартными протоколами;
- Stateless — отсутствие записи состояния клиента. Сервер не должен хранить информацию о предыдущих действиях пользователя. В свою очередь клиент должен включать в запрос только данные, которые нужны для получения ответа от сервера;
- Code on Demand — предоставление кода по запросу. Сервер может отправлять код клиенту (в качесиве примера: скрипт для включения музыки);
- Layered System — многоуровневость системы. Серверы могут располагаться на разных уровнях. Однако взаимодействие происходит только между соседними устройствами;
- Starting with the Null Style — клиент должен иметь доступ только к одной точке входа. Дальнейшую обработку выполняет сервер.
Чаще всего передача данных по REST API работает на основе протокола HTTP. Он использует четыре HTTP-метода, которые позволяют произвести подключение по API и взаимодействовать с объектами на сервере:
- GET, чтобы получить список объектов;
- DELETE, чтобы удалить данные;
- POST, чтобы добавить или заменить данные;
- PUT для регулярного обновления данных.
Второе название этих методов — идентификаторы CRUD. Это аббревиатура, образованная от четырёх действий: создать (create), прочитать (read), обновить (update) и удалить (delete).
Что такое SOAP API
SOAP — это протокол, по которому веб-приложения взаимодействуют между собой или с клиентом.
SOAP API — это веб-сервис для обмена сообщениями между клиентом и сервером по протоколу SOAP. Он может работать с протоколами SMTP, FTP, HTTP и HTTPS.
Сообщение SOAP состоит из следующих элементов:
- Envelope (конверт) — помогает определить передаваемый документ как SOAP-сообщение. Это происходит благодаря пространству имён
xmlns:soap=«http://www.w3.org/2003/05/soap-envelope/
. Если на этапе определения будет указан другой адрес, сервер вернёт ошибку;
- Header (заголовок) — в нем указаны атрибуты приложения (например, аутентификация). Заголовок может включать в себя три атрибута:
- mustUnderstand — указывает, в каком порядке нужно обработать заголовок: обязательном (значение 1) или опциональном (значение 0);
- actor — задаёт узел, на котором должен обрабатываться заголовок;
- encodingStyle — устанавливает кодировку.
- Body (тело) — само сообщение. Оно хранит в себе запрос или ответ от сервера;
- Fault (ошибка) — входит в состав сообщения, только если возникла ошибка при обработке. Состоит из четырёх полей:
- faultcode — кода ошибки;
- faultstring — описания проблемы;
- faultactor — данных о компоненте программы, который вызвал ошибку;
- detail — дополнительных сведений.
Чем отличается REST от SOAP
SOAP — это протокол, который имеет официальные правила. Он представляет собой расширение XML-RPC — стандарта удалённого доступа к приложению. XML-RPC использует XML для кодировки запроса и HTTP для транспортировки.
REST — это набор ограничений. При написании кода разработчик может учитывать эти ограничения, однако это не помешает гибкой настройке инфраструктуры. Это связано с тем, что RESTful не имеет официального стандарта.
Если SOAP — это чёткий регламент с разрешениями и ограничениями, то REST состоит только из ограничений.
Какие приложения могут работать с API
API включает в себя:
- действие, которое можно выполнить;
- входные данные;
- выходные данные.
API могут работать с разными типами программ: операционными системами, графическими и звуковыми интерфейсами, а также аутентификационными системами.
Для операционных систем популярны модули:
- Cocoa;
- Linux Kernel API;
- OS/2 API;
- Windows API.
Для графических и звуковых интерфейсов часто используются:
- DirectDraw/Direct3D и DirectMusic/DirectSound — части DirectX;
- SFML;
- OpenVG;
- SDL;
- Vulkan;
- Mantle;
- OpenAL.
Аутентификационные системы используют BioAPI и PAM