Что такое интерфейс прикладного программирования (API)
Давайте начнем с примера из реальной жизни, который поможет нам понять основы API. Предположим, вы идете в ресторан и вам нужно заказать еду, какую процедуру вы выполняете? Вы должны посмотреть на меню и выбрать блюдо, которое вы хотите съесть на ужин. Здесь меню выступает в роли API, вы выбираете из меню различные блюда, которые приготовлены не вами, что означает, что вы используете блюда, приготовленные другими.
Я думаю, вы готовы перейти от примера Лемана к техническому определению интерфейса прикладного программирования (API).
Интерфейс прикладного программирования (API) – это связь между компьютерами или между компьютерными программами. Это тип программного интерфейса, который предлагает услуги другим частям программного обеспечения. Спецификация API – это документ или стандарт, который описывает, как создать или использовать такое соединение или интерфейс. Считается, что компьютерная система, которая соответствует этому стандарту, реализует или предоставляет API. Термин API может относиться как к спецификации, так и к реализации.
Как работает API
API – это набор определенных правил, которые объясняют, как компьютеры или приложения взаимодействуют друг с другом. API находится между приложением и веб-сервером,
Вот как работает API:
- Клиентское приложение инициирует вызов API для получения информации – так называемый промежуточный слой, который обрабатывает передачу данных между системами – в виде запроса. Этот запрос передается от приложения к веб-серверу через унифицированный идентификатор ресурса API (URI) и включает в себя глагол запроса, заголовки, а иногда и тело запроса.
- После получения корректного запроса API выполняет вызов внешней программы или веб-сервера.
- Сервер отправляет API ответ с запрашиваемой информацией.
- API передает данные первоначальному запрашивающему приложению. API обеспечивают безопасность, поскольку их позиция посредника облегчает абстрагирование функциональности между двумя системами – конечная точка API отделяет потребляющее приложение от инфраструктуры, предоставляющей услугу. Вызовы API обычно включают учетные данные авторизации для снижения риска атак на сервер, а шлюз API может ограничивать доступ для минимизации угроз безопасности. Кроме того, во время обмена данными HTTP-заголовки, cookies или параметры строки запроса обеспечивают дополнительные уровни безопасности данных.Типы APIСегодня большинство интерфейсов прикладного программирования – это веб-интерфейсы API, которые предоставляют данные и функциональность приложения через Интернет. Вот четыре основных типа веб-интерфейсов API:- Открытые API – это интерфейсы прикладного программирования с открытым исходным кодом, доступ к которым можно получить с помощью протокола HTTP. Также известные как публичные API, они имеют определенные конечные точки API и форматы запросов и ответов.- Партнерские API – это интерфейсы прикладного программирования, предоставляемые стратегическими бизнес-партнерами. Как правило, разработчики могут получить доступ к этим API в режиме самообслуживания через публичный портал разработчиков API. Тем не менее, для доступа к партнерским API им необходимо пройти процесс регистрации и получить учетные данные для входа в систему.- Внутренние API – это интерфейсы прикладного программирования, которые остаются скрытыми от внешних пользователей. Эти частные API недоступны для пользователей за пределами компании и предназначены для повышения производительности и улучшения коммуникации между различными внутренними командами разработчиков. – Составные API объединяют несколько API данных или сервисов. Эти сервисы позволяют разработчикам получить доступ к нескольким конечным точкам за один вызов. Композитные API полезны в архитектуре микросервисов, где для выполнения одной задачи может потребоваться информация из нескольких источников.
Типы протоколов API
По мере роста использования веб-интерфейсов API были разработаны определенные протоколы, чтобы предоставить пользователям набор определенных правил, которые определяют принятые типы данных и команды. По сути, эти протоколы API облегчают стандартизированный обмен информацией:
– SOAP (Simple Object Access Protocol) – это протокол API, построенный на XML, позволяющий пользователям отправлять и получать данные через SMTP и HTTP. С помощью API SOAP проще обмениваться информацией между приложениями или программными компонентами, которые работают в разных средах или написаны на разных языках.
– XML-RPC – это протокол, который опирается на определенный формат XML для передачи данных, в то время как SOAP использует собственный формат XML. XML-RPC старше SOAP, но намного проще, и относительно легкий, так как использует минимальную пропускную способность.
– JSON-RPC – это протокол, похожий на XML-RPC, поскольку оба они являются удаленными вызовами процедур (RPC), но этот протокол использует для передачи данных формат JSON вместо XML. Оба протокола просты. Хотя вызовы могут содержать несколько параметров, они ожидают только один результат.
– REST (Representational State Transfer) – это набор принципов архитектуры веб-интерфейсов API, что означает отсутствие официальных стандартов (в отличие от протоколов). Чтобы быть REST API (также известным как RESTful API), интерфейс должен придерживаться определенных архитектурных ограничений. Возможно построение RESTful API с использованием протокола SOAP, но эти два стандарта обычно рассматриваются как конкурирующие спецификации.
Общие примеры API
Поскольку API позволяют компаниям открывать доступ к своим ресурсам, сохраняя при этом безопасность и контроль, они стали ценным аспектом современного бизнеса. Вот несколько популярных примеров интерфейсов прикладного программирования, с которыми вы можете столкнуться:
– Универсальные логины: Популярным примером API является функция, позволяющая людям входить на сайты, используя данные для входа в Facebook, Twitter или Google. Эта удобная функция позволяет любому сайту использовать API одного из популярных сервисов для быстрой аутентификации пользователя, избавляя его от необходимости создавать новый профиль для каждого сервиса сайта или нового участника.
– Обработка платежей третьих сторон: Например, ставшая уже вездесущей функция “Оплатить с помощью PayPal”, которую вы видите на сайтах электронной коммерции, работает через API. Это позволяет людям оплачивать товары онлайн, не раскрывая конфиденциальных данных и не предоставляя доступ посторонним лицам.
– Google Maps: Одним из наиболее распространенных примеров хорошего API является сервис Google Maps. Помимо основных API, которые отображают статические или интерактивные карты, приложение использует другие API и функции для предоставления пользователям направлений или точек интереса. Благодаря геолокации и нескольким слоям данных вы можете взаимодействовать с API Maps при прокладке маршрутов путешествий или отслеживании движущихся объектов, таких как транспортное средство доставки.
– Twitter: Каждый твит содержит описательные основные атрибуты, включая автора, уникальный идентификатор, сообщение, метку времени, когда он был опубликован, и метаданные геолокации. Twitter делает публичные твиты и ответы на них доступными для разработчиков и позволяет разработчикам публиковать твиты через API компании.
О ПОСТМАНЕ:
Postman начинался просто как побочный проект для решения конкретной проблемы: Абхинав Астхана, генеральный директор и соучредитель Postman, решил создать инструмент, который упростил бы процесс тестирования API. Поскольку использование инструмента быстро возросло, Абхинав привлек двух своих бывших коллег, Анкита Собти и Абхиджита Кейна, чтобы помочь им создать Postman, Inc. Сегодня Postman является ведущей в мире платформой API, а три основателя возглавляют компанию и по сей день.
Postman – это платформа API для создания и использования API. Postman упрощает каждый этап жизненного цикла API и оптимизирует совместную работу, чтобы вы могли создавать лучшие API быстрее.
Это очень полезная платформа для студентов и работающих профессионалов, и она очень помогла мне в изучении концепции API, у меня большой опыт изучения и тестирования API с помощью инструмента Postman.
Вот и все с моей стороны. Надеюсь, это поможет вам понять концепцию API.