Виды API — HTTP API
В спецификации HTTP есть много правил и рекомендаций, но их все равно недостаточно для построения полноценного API.
Есть множество вопросов, на которые спецификация HTTP не отвечает:
- Как строить URL?
- Как работать с ошибками?
- В каком формате и какой структуры возвращать данные?
- Как делать пагинацию?
Именно поэтому для построения хорошего API недостаточно правил HTTP. Нужны дополнительные соглашения, которые мы изучим в этом уроке.
За время существования интернета было создано немало стандартов API. Среди них можно выделить несколько больших направлений, которые строятся по примерно одинаковым правилам.
Ниже мы рассмотрим их подробнее, а пока просто познакомимся с ними:
API по принципу «как придется»
Сюда попадают все API, которые делают по принципу «как получится». Обычно они встречаются во внутренних сервисах или публичных старых сервисах, созданных десятки лет назад.
Здесь нет никаких правил:
- Каждый эндпоинт существует сам по себе
- Активно используются параметры запроса
- Игнорируются коды ответа и другие возможности самого HTTP
В теории такие API делать не стоит, но на практике они иногда встречаются.
Архитектурный стиль REST
REST — это архитектурный стиль, который был заложен в сам протокол HTTP, ведь его придумал один из создателей HTTP.
API, построенный по этому принципу, вовсю использует возможности HTTP. Такое API активно опирается на заголовки, коды ответов, грамотно созданные эндпоинты. Например, DummyJSON построен по принципам REST.
Можно сказать, что глобальная идея REST — использовать для проектирования API возможности, заложенные в HTTP изначально:
Метод | Маршрут | Описание |
---|---|---|
GET | /photos | Список фотографий |
POST | /photos | Создание фотографии |
GET | /photos/:id | Данные фотографии |
PATCH/PUT | /photos/:id | Обновление фотографии |
DELETE | /photos/:id | Удаление фотографии |
Однако REST не отвечает на те вопросы из начала урока. REST — это архитектурный стиль, а не конкретный стандарт. В эндпоинтах выше мы видим адреса и методы HTTP, но мы не знаем, какими будут данные в запросах и в ответах. Поэтому любое REST API имеет свои особенности, которые присущи только ему — у него есть свой способ обработки ошибок и своя структура возвращаемых данных.
Разработчики пытаются создать стандарт, который добавляет в REST все недостающие части. Самый удачный пример — json:api . Этот стандарт описывает конкретные структуры данных для разных типов запросов и ответов. Так может выглядеть извлечение конкретной фотографии:
"type": "photos", "id": "1", "attributes": "title": "Rails is Omakase" >, "relationships": "author": "links": "self": "/photos/1/relationships/author", "related": "/photos/1/author" >, "data": "type": "people", "id": "9" > > > >
Удаленный вызов процедур (Remote Procedure Call, RPC)
RPC API появились в интернете практически раньше всех остальных видов API. Здесь HTTP рассматривается как способ доставки API, но сам по себе не является частью API.
Как правило, RPC API работают с одним эндпоинтом — например, /rpc , на который отправляется GET или POST. RPC API используют небольшое количество заголовков и кодов ответов. Обработка ошибок, выполнение разных действий — все это в RPC зашито в само тело запроса и ответа.
Идея RPC в том, что мы просто вызываем обычные функции, а они каким-то магическим образом делают запросы на внешнюю систему, полностью или почти полностью скрывая от нас существование HTTP и сети в целом.
Запрос в JSON-RPC выглядит как JSON, в котором указывается, какую функцию и с какими параметрами нужно вызвать:
"jsonrpc": "2.0", "method": "subtract", "params": "minuend": 42, "subtrahend": 23 >, "id": 3 >
В ответе приходит результат вызова этой функции:
"jsonrpc": "2.0", "result": 19, "id": 3 >
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
- 130 курсов, 2000+ часов теории
- 1000 практических заданий в браузере
- 360 000 студентов
Наши выпускники работают в компаниях:
Какие бывают api
API (аббревиатура от Application Programming Interface) – интерфейс программирования приложений, позволяющий сервисам взаимодействовать, получать доступ и обмениваться данными.
По сути API выступает в роли посредника между двумя приложениями или сервисами – оно предоставляет решения (классы, функции, структуры), реализованные в одном сервисе, и создает среду для создания нового приложения с применением этих решений.
Объяснение для чайников: например, набор команд, которым обучена собака – это API. Если мы знаем эти команды, мы без проблем сможем взаимодействовать с собакой (она понимает, что именно мы хотим от нее) и тренировать ее. Если у нас нет доступа к такому API, нам придется заново обучать собаку командам (на что уйдет много времени и успех не гарантирован) или она просто не будет выполнять наши команды.
Пример использования API, знакомый большинству интернет-пользователей – регистрация на сайте с помощью аккаунта социальной сети. Благодаря API сайт может подключиться к базе данных социальной сети и получить нужную ему информацию.
Типы API
Наиболее распространены во всемирной паутине так называемые Web API, которые используются в качестве платформы для создания HTTP-служб. Среди них выделяют:
- RPC (Remote Procedure Call ) – удаленный вызов процедур,
- SOAP (Simple Object Access Protocol) – простой протокол доступа к объектам,
- REST (Representational State Transfer ) – передача состояния представления.
API можно разделить по типу сервиса, у которого они есть: приложения, вебсайты и операционные системы. Например, у большей части операционных систем (Unix, Windows, MacOS, и т. д.) есть API, благодаря которому возможно программирование сервисов для этих систем.
Также API можно подразделять по типу доступа:
- Внутренние API (доступны внутренним разработчикам компании и сотрудникам, используются для оптимизации рабочих процессов и снижения затрат),
- Партнерские API (доступны бизнес-партнерам и потребителям продукта или услуги, используются для оптимизации процессов и разработки),
- Публичные API (доступны всем, используются для создания новых сервисов и популяризации существующего направления).
Плюсы и минусы работы с API
Плюсов у использования API немало:
- Самый главный плюс работы с API – это экономия времени при разработке собственных сервисов. Программист получает готовые решения и ему не нужно тратить время на написание кода для функционала, который уже давно реализован.
- В API могут учитываться нюансы, которые сторонний разработчик может не учесть или просто не знать,
- API дает приложениям определенную системность и предсказуемость – одна и та же функция с помощью API может быть реализована в разных приложениях так, что будет понятна и знакома всем пользователям.
- API дает сторонним разработчикам доступ к закрытым сервисам.
Но также есть и минусы:
- Если в основной сервис вносятся изменения и доработки, в API они могут попасть не сразу,
- Разработчику доступны готовые решения, как именно они реализованы и как выглядит исходный код, он не знает,
- API предназначен в первую очередь для общего использования, он может не подойти для создания какого-то особого функционала.
Использование API на практике
Самые распространенные способы использования различных API разработчиками и компаниями по всему миру:
- Добавление в свои сервисы функционала социальных сетей и мессенджеров, калькуляторов валют, погоды и т.д. Стандартное рабочее решение, которое не требует долгих месяцев программирования.
- Доступ к популярному сервису или хранилищу данных с соблюдением всех требований безопасности.
- Внутренние нужды компании, например, разработка мобильного приложения под сайт, с последующей систематизацией всех данных.
Популярные API
API позволяет разработчикам использовать уже имеющийся функционал одного приложения для доработки другого. Пользователям всемирной паутины наиболее знакомы функции, реализованные с помощью API социальных сетей:
- Facebook API позволяет логиниться на сторонних платформах с помощью своего аккаунта, оплачивать покупки в приложении, получать доступ к данным крупных и средних аккаунтов Instagram Business, управлять страницами сообществ и публиковать на них контент, получать статистику по рекламе, управлять объявлениями и аудиторией, запускать прямые эфиры,
- С помощью Twitter API можно показывать ленту твитов на сайте, управлять профилем и настройками учетной записи, автоматически создавать рекламные кампании в Твиттере и управлять ими,
- API ВКонтакте дает возможность отслеживать активность пользователей в сообществах, создавать ботов, собирать статистику по действиям в сообществе, автоматически модерировать контент, автоматизировать работу с товарами (например, импорт из внешней базы), получать текстовые публикации из ВКонтакте по заданным ключевым словам и т.д.,
- Telegram Bot API представляет собой HTTP-интерфейс для работы с ботами в Telegram,
- YouTube API позволяет встраивать видео на сайт, создавать плейлисты, встраивать плеер в приложение, получать данные об активности пользователей.
Не менее популярны и следующие API:
Яндекс API – у всех популярных сервисов Яндекса есть свои API (Вебмастер, Метрика, Директ, Маркет, Аудитории, Карты и т.д.), благодаря которым можно:
- получать информацию о товарах, представленных на Маркете и создавать приложения для автоматизированного размещения,
- автоматизировать создание счётчиков Метрики, настройку целей и получение статистики,
- создавать приложения для управления рекламными кампаниями, автоматизировать процесс создания рекламных кампаний и управлять ими через интерфейс собственного приложения,
- настраивать разнообразные аудиторные сегменты, которые можно использовать для показа рекламных объявлений,
- использовать картографические данные,
- размещать на сайте или в приложении расписания поездов, электричек, самолетов,
- автоматизировать создание и отправку заказов на доставку,
- встроить Яндекс.Переводчик в мобильное приложение или веб-сервис для конечных пользователей,
- автоматизировать проверку семантической разметки и т.д.
Google API – компания также предоставляет разработчикам несколько десятков API для решения самых разных задач:
- Работа с устройствами и приложениями на платформе Android,
- Управление событиями в Календаре,
- Управление товарами и акккаунтом в Google Покупках,
- Управление файлами на Google Диске, включая загрузку, скачивание, поиск, изменение прав доступа,
- Просмотр и управление данными Google Analytics,
- Чтение и редактирование файлов в Документах,
Если думать об API, как о способе упрощения кода, то можно сказать, что библиотека jQuery, написанная на языке программирования JavaScript, является тоже своего рода API, т.к. предлагает разработчикам способ упростить код в несколько раз (5-6 строк вместо 30).
Похожие темы: нет
Синонимы: нет
Все термины на букву «A»
Все термины в глоссарии
Друзья, теперь вы можете поддержать SEOnews https://pay.cloudtips.ru/p/8828f772 Ваши донаты помогут нам развивать издание и дальше радовать вас полезным контентом. |
Что такое API?
API – это механизмы, которые позволяют двум программным компонентам взаимодействовать друг с другом, используя набор определений и протоколов. Например, система ПО метеослужбы содержит ежедневные данные о погоде. Приложение погоды на телефоне «общается» с этой системой через API и показывает ежедневные обновления погоды на телефоне.
Что значит API?
API – Application Programming Interface, что значит программный интерфейс приложения. В контексте API слово «приложение» относится к любому ПО с определенной функцией. Интерфейс можно рассматривать как сервисный контракт между двумя приложениями. Этот контракт определяет, как они взаимодействуют друг с другом, используя запросы и ответы. Документация API содержит информацию о том, как разработчики должны структурировать эти запросы и ответы.
Как работают API?
Архитектура API обычно объясняется с точки зрения клиента и сервера. Приложение, отправляющее запрос, называется клиентом, а приложение, отправляющее ответ, называется сервером. Итак, в примере с погодой база данных службы – это сервер, а мобильное приложение – это клиент.
Существует четыре различных способа работы API в зависимости от того, когда и почему они были созданы.
SOAP API
SOAP – Simple Object Access Protocol, т. е. простой протокол доступа к объектам. Клиент и сервер обмениваются сообщениями посредством XML. Это менее гибкий API, который был более популярен в прошлом.
RPC API
Такие API называются системой удаленного вызова процедур. Клиент выполняет функцию (или процедуру) на сервере, и сервер отправляет результат обратно клиенту.
Websocket API
Websocket API – это еще одна современная разработка web API, которая использует объекты JSON для передачи данных. WebSocket API поддерживает двустороннюю связь между клиентскими приложениями и сервером. Сервер может отправлять сообщения обратного вызова подключенным клиентам, что делает его более эффективным, чем REST API.
REST API
На сегодняшний день это самые популярные и гибкие API-интерфейсы в Интернете. Клиент отправляет запросы на сервер в виде данных. Сервер использует этот клиентский ввод для запуска внутренних функций и возвращает выходные данные обратно клиенту. Давайте рассмотрим API REST более подробно ниже.
Что такое REST API?
REST – это Representational State Transfer, т. е. передача репрезентативного состояния. REST определяет набор функций, таких как GET, PUT, DELETE и т. д., которые клиенты могут использовать для доступа к данным сервера. Клиенты и серверы обмениваются данными по протоколу HTTP.
Главной особенностью REST API является то, что такая передача выполняется без сохранения состояния. Без сохранения состояния означает, что серверы не сохраняют клиентские данные между запросами. Клиентские запросы к серверу аналогичны URL-адресам, которые вы вводите в браузере для посещения веб-сайта. Ответ от сервера представляет собой простые данные без типичного графического отображения веб-страницы.
Что такое web API?
Web API или Web Service API –это интерфейс обработки приложений между веб-сервером и веб-браузером. Все веб-сервисы являются API, но не все API являются веб-сервисами. REST API – это особый тип Web API, в котором используется стандартный архитектурный стиль, описанный выше.
Различные термины, которые относятся к API, такие как Java API или сервисные API, существуют потому, что исторически API были созданы до всемирной паутины. Современные web API – это REST API, и эти термины могут использоваться взаимозаменяемо.
Что такое интеграции API?
Интеграции API – это программные компоненты, которые автоматически обновляют данные между клиентами и серверами. Некоторыми примерами интеграции API являются автоматическая синхронизация данных в облаке из галереи изображений телефона или автоматическая синхронизация времени и даты ноутбуке при смене часового пояса. Организации также могут использовать их для эффективной автоматизации многих системных функций.
Каковы преимущества REST API?
REST API имеет четыре главных преимущества.
1. Интеграция
API используются для интеграции новых приложений с существующими программными системами. Это увеличивает скорость разработки, потому что каждую функцию не нужно писать с нуля. API можно использовать для усиления существующего кода.
2. Инновации
Целые отрасли могут измениться с появлением нового приложения. Компании должны быстро реагировать и поддерживать быстрое развертывание инновационных услуг. Они могут сделать это, внося изменения на уровне API без необходимости переписывать весь код.
3. Расширение
API-интерфейсы предоставляют компаниям уникальную возможность удовлетворять потребности своих клиентов на разных платформах. Например, карты API позволяет интегрировать информацию о картах через веб-сайты, Android, iOS и т. д. Любая компания может предоставить аналогичный доступ к своим внутренним базам данных, используя бесплатные или платные API.
4. Простота обслуживания
API действует как шлюз между двумя системами. Каждая система обязана вносить внутренние изменения, чтобы это не повлияло на API. Таким образом, любые будущие изменения кода одной стороной не повлияют на другую сторону.
Какие типы API существую?
API классифицируются как по архитектуре, так и по сфере применения. Мы уже рассмотрели основные типы архитектур API, поэтому мы предлагаем рассмотреть сферы применения.
Частные API
Это внутренние API организаций, которые используются только для соединения систем и данных внутри бизнеса.
Общедоступные API
Это API с общим доступом и могут быть использованы кем угодно. С этими типами API может быть (но не обязательно) сопряжена некоторая авторизация и стоимость.
Партнерские API
Эти API доступны только авторизованным сторонним разработчикам для содействия партнерским отношениям между предприятиями.
Составные API
Эти API объединяют два или более разных API для решения сложных системных требований или поведения.
Что такое адрес API и почему он важен?
Адреса API – это конечные точки взаимодействия в системе связи API. К ним относятся URL-адреса серверов, службы и другие конкретные цифровые местоположения, откуда информация отправляется и принимается между системами. Адреса API имеют решающее значение для предприятий по двум основным причинам.
1. Безопасность
Адреса API делают систему уязвимой для атак. Мониторинг API имеет решающее значение для предотвращения ненадлежащего использования.
2. Производительность
Адреса API, особенно с высоким трафиком, могут создавать узкие места и влиять на производительность системы.
Как обезопасить REST API?
Все API должны быть защищены посредством надлежащей аутентификации и мониторинга. Описание двух основных способов защиты безопасности REST API см. ниже.
1. Токены аутентификации
Они используются для авторизации пользователей для выполнения вызова API. Токены аутентификации проверяют, являются ли пользователи теми, за кого они себя выдают, и что у них есть права доступа для этого конкретного вызова API. Например, при входе на почтовый сервер почтовый клиент использует токены аутентификации для безопасного доступа.
2. Ключи API
Ключи API проверяют программу или приложение, выполняющее вызов API. Они идентифицируют приложение и гарантируют, что оно имеет права доступа, необходимые для выполнения конкретного вызова API. Ключи API не так безопасны, как токены, но они позволяют осуществлять мониторинг API для сбора данных об использовании. Возможно, вы заметили длинную строку символов и цифр в URL-адресе вашего браузера при посещении разных веб-сайтов. Эта строка представляет собой ключ API, который веб-сайт использует для выполнения внутренних вызовов API.
Как создать API?
Для создания API, с которым другие разработчики захотят работать и которому будут доверять, необходимы должные осмотрительность и усилия. См. пять шагов, необходимых для качественного проектирования API, ниже.
1. План API
Спецификации API, такие как OpenAPI, обеспечивают основу для разработки API. Лучше заранее подумать о различных вариантах использования и убедиться, что API соответствует текущим стандартам разработки API.
2. Разработка API
Разработчики API создают прототипы API, используя шаблонный код. После тестирования прототипа разработчики могут настроить его в соответствии с внутренними спецификациями.
3. Тестирование API
Тестирование API аналогично тестированию ПО и должно проводиться для предотвращения ошибок и дефектов. Инструменты тестирования API можно использовать для проверки устойчивости API к кибератакам.
4. Документирование API
Хотя API говорят сами за себя, документация по API действует как руководство по повышению удобства использования. Хорошо задокументированные API, которые предлагают ряд функций и вариантов использования, как правило, более популярны в сервис-ориентированной архитектуре.
5. Вывод API на рынок
Так же, как Amazon – это онлайн-рынок для розничной торговли, существуют торговые площадки API для разработчиков, чтобы покупать и продавать другие API. Размещение API может позволить монетизировать интерфейс.
Что такое тестирование API?
Стратегии тестирования API аналогичны другим методологиям тестирования ПО. Основное внимание уделяется проверке ответов сервера. Тестирование API включает описанные ниже аспекты.
- Выполнение нескольких запросов к адресам API для тестирования производительности.
- Написание модульных тестов для проверки бизнес-логики и функциональной корректности.
- Тестирование безопасности путем имитации системных атак.
Как написать документацию по API?
Составление исчерпывающей документации по API является частью процесса управления API. Документация по API может быть создана автоматически с помощью инструментов или написана вручную. См. рекомендации ниже.
- Написание объяснений на простом, легко читаемом русском языке. Документы, созданные инструментами, могут стать многословными и потребовать редактирования.
- Использование примеров кода для объяснения функциональности.
- Ведение документации, чтобы она была точной и актуальной.
- Ориентированность стиля письма на начинающих
- Охват всех проблем, которые API может решить для пользователей.
Как использовать API?
Шаги по внедрению нового API см. ниже.
- Получение ключа API Выполняется путем создания проверенной учетной записи у поставщика API.
- Установка клиента API HTTP Этот инструмент позволяет легко структурировать запросы API, используя полученные ключи API.
- В отсутствие клиента API можно попробовать самостоятельно структурировать запрос в браузере, обратившись к документации по API.
- Как только вы освоитесь с новым синтаксисом API, вы сможете начать использовать его в коде.
Где найти новые API?
Новые веб-API можно найти на торговых площадках API и в каталогах API. Торговые площадки API – это открытые платформы, на которых любой желающий может выставить API на продажу. Каталоги API – это контролируемые репозитории, регулируемые владельцем каталога. Опытные разработчики API могут оценить и протестировать новый API, прежде чем добавить его в свой каталог.
Популярные веб-сайты API см. ниже.
- Rapid API – крупнейший мировой рынок API с более чем 10 000 общедоступных API и 1 млн активных разработчиков на веб-сайте. RapidAPI позволяет пользователям тестировать API непосредственно на платформе перед совершением покупки.
- Public API – платформа группирует удаленные API в 40 нишевых категорий, что упрощает просмотр и поиск подходящего для ваших нужд объекта.
- APIForThat и APIList – на обоих веб-сайтах есть списки из более чем 500 web-API, а также подробная информация о том, как их использовать.
Что такое шлюз API?
Шлюз API – это инструмент управления API для корпоративных клиентов, использующих широкий спектр серверных служб. Шлюзы API обычно выполняют общие задачи, такие как аутентификация пользователей, статистика и управление скоростью, применимые ко всем вызовам API.
Amazon API Gateway – это полностью управляемый сервис для разработчиков, предназначенный для создания, публикации, обслуживания, мониторинга и обеспечения безопасности API в любых масштабах. API Gateway берет на себя все задачи, связанные с приемом и обработкой тысячи одновременных вызовов API, включая управление трафиком, поддержку CORS, авторизацию и контроль доступа, регулирование количества запросов, мониторинг и управление версиями API.
Что такое GraphQL?
GraphQL – это язык запросов, разработанный специально для API. Он отдает приоритет предоставлению клиентам именно тех данных, которые они запрашивают, и не более того. Такой язык разработан, чтобы сделать API быстрыми, гибкими и удобными для разработчиков. В качестве альтернативы REST GraphQL дает разработчикам интерфейсов возможность запрашивать несколько баз данных, микросервисов и API с помощью одной конечной точки GraphQL. Организации предпочитают создавать API с помощью GraphQL, потому что это помогает им быстрее разрабатывать приложения. Подробнее о GraphQL читайте здесь.
AWS AppSync – это полностью управляемый сервис, который упрощает разработку API-интерфейсов GraphQL, выполняя тяжелую работу по безопасному подключению к источникам данных, таким как AWS DynamoDB, AWS Lambda и т. д. AWS AppSync может передавать обновления данных в режиме реального времени через Websocket миллионам клиентов. Для мобильных и веб-приложений AppSync также обеспечивает локальный доступ к данным, когда устройства отключаются. После развертывания AWS AppSync автоматически масштабирует подсистему выполнения API GraphQL вверх или вниз в соответствии с текущим объемом запросов к API.
Как получить сервисы Amazon API?
Управление интерфейсом прикладного программирования является важной частью современной разработки программного обеспечения. Стоит инвестировать в инфраструктуру API, включая инструменты, шлюз и архитектуру микросервисов как для внутренних, так и для внешних пользователей.
Amazon API Gateway предусматривает полный набор функций для управления несколькими API одновременно с должной эффективностью. Вы можете бесплатно совершать до одного миллиона вызовов API, зарегистрировавшись на портале AWS.
AWS AppSync предоставляет возможность настраивать, администрировать и обслуживать полностью управляемую систему API GraphQL со встроенной бессерверной инфраструктурой высокого уровня доступности. Вы платите только за то, что реально используете. Минимальная плата или обязательный уровень использования отсутствует. Чтобы начать работу, войдите в консоль AWS AppSync.
Что такое API и как с ним работать
Разбираемся, как работает эта технология и какие функции выполняет. Рассматриваем примеры использования, способы вызова и тестирования.
Кирилл Афонин
Автор статьи
30 декабря 2022 в 17:15
Кем бы вы ни работали в IT, познакомиться с API придется. Знание базовых принципов, по которым программы «разговаривают» друг с другом, поможет в работе не только программистам и тестировщикам, но и аналитикам и менеджерам продукта.
Рассказываем в статье, что такое API, как с ним работать и говорить на одном языке с программистами, экономить время на создании продуктов и тестировать гипотезы на раз-два.
Что такое API и зачем он нужен
API — Application Programming Interfaces — это программный интерфейс приложений. Технология соединяет разные системы и связывает программы друг с другом.
Использование API поможет гораздо меньше кодить, а вместо этого брать уже существующие данные, функции и приложения и на их основе создавать новые продукты. Скорость и экономия времени ценятся в IT.
Работа с API полезна, когда нужно быстро получить данные, сократить время разработки, адаптировать продукт к новому рынку, проверить работоспособность вашего MVP или масштабировать бизнес.
Менеджеры продуктов и аналитики должны понимать базовые понятия и как использовать API, чтобы уверенно разговаривать с командой разработки и использовать весь потенциал этого решения для быстрого создания продуктов и улучшения клиентского опыта.
А тестировщики изучают API, чтобы уметь тестировать их корректную работу. Этому учат на курсе Skypro «Инженер по тестированию». За несколько месяцев получите навыки и знания, которые необходимы новичку для начала работы. Найти подходящую вакансию помогут специалисты центра карьеры.
Станьте аналитиком данных в два раза быстрее
Ускоренный курс для тех, кто хочет быстрее перейти на удаленку
Хорошо спроектированная инфраструктура API экономит затраты, увеличивает доходы и создает новые бизнес-модели для компании (проверено Google, Amazon, Slack и Facebook*).
Программисты обязаны понимать устройство API и его возможные функции: даже если вы не пишете API как backend-разработчик, вы к нему обращаетесь как frontend-разработчик. В курсе «Веб-разработчик» есть блок об особенностях взаимодействия с браузерными и внешними API.
Основные виды API
API бывают внутренние и публичные, партнерские и составные.
Внутренние API используют, когда нужно связать ПО с разными сервисами внутри компании, которые создали сотрудники. Еще внутренние API помогают работе собственных приложений, например при внутренней передаче данных.
Публичные API создают для совместного использования. Кто-то делает приложение и открывает доступ, а другие разработчики могут пользоваться его функциями для своей работы и экономить время.
Например, в Slack вы можете не только отслеживать задачи и ставить потрясающие анимированные реакции на сообщения коллег, но и делать собственное приложение на его основе. Оно будет отправлять сообщения, генерировать оповещения и создавать группы на платформе. Писали не вы — а пользуетесь вы.
Есть еще партнерские API — они публичные, но с оговоркой: пользоваться ими может не кто угодно, а только авторизованные партнеры. Например, ЮMoney не даст принимать платежи онлайн, пока вы не заключите с компанией договор и не получите ключ доступа.
И есть составные — это система API, которая объединяет два или больше разных API, чтобы решить какую-то сложную задачу.
Примеры использования API
Простой, но жизненно необходимый API: сервис, который позволяет узнать всё о Покемонах — от их классификации и способностей до новых игр и фанатских сервисов.
Сложный составной API рассмотрим на примере городского транспорта: допустим, у нас есть много автобусов и трамваев и каждый передает информацию о своем местоположении в единое общее внутреннее API.
Каждая транспортная компания агрегирует свои данные, но целую картину увидит только государственная компания, которой нужно выводить на табло остановок общественного транспорта информацию о времени прибытия ближайшего автобуса. У нее свое публичное API.
Кстати, данные из него могут передаваться и дальше — например, на какие-то картографические сервисы, которым хочется предлагать эту информацию своим пользователям. Пример такого API.
Как работают API
Запросы и ответы
API работают с использованием «запросов» и «ответов». Запросы — это взаимодействие с API, а ответы — результат этого взаимодействия.
Например, технология точного прогноза погоды Meteum 2.0 получает запросы с устройств пользователей, которые боятся попасть под дождь.
Она берет информацию из пяти крупных центров, которые передают данные о погоде, дополняет их данными от пользователей, которые находятся в требуемом регионе, и выдает ответ.
В теле запроса вы сообщаете API, из какого региона хотите получить информацию о погоде. Meteum 2.0 возвращает запрошенную информацию в виде зашифрованного сообщения. Как именно будет передаваться информация и как ответ поймет система API — прописано в документации.
HTTP-методы
В запросах к наиболее популярным API (RESTFUL API) необходимо использовать HTTP-методы. Запомните всего три метода: POST, GET и PUT.
POST используют для создания новых ресурсов. Например, если бы вы хотели создать новое текстовое сообщение с помощью общедоступного API Slack, где ресурс — это сообщение.
GET используют для чтения данных. Например, в Meteum 2.0 этот метод отвечает за получение информации о погоде.
PUT используют для обновления или замены данных. Например, обновление адреса электронной почты пользователя.
Использовать эти запросы для тестирования API учат на курсе Skypro «Инженер по тестированию». В программе есть специальный блок, который этому посвящен. В результате выполните рабочий проект в Postman, пройдете нагрузочные тесты и освоите азы автоматизации тестирования.
Python и API: настраиваем интеграции // Урок 8 от Skypro
Конечные точки — эндпоинтc (Endpoints)
Эндпоинт — это место, в котором API соединяется с программой.
Вот вы попросили Алису из «Яндекса» узнать погоду в Йошкар-Оле. Она отправила запрос к API Meteum 2.0, а он обратился к серверам прогнозистов из национальных центров России, США, Канады, Японии и ЕС, к своей внутренней системе аналитики и к пользователям, которые недавно выходили из дома и могут поделиться опытом наблюдения дождя, чтобы ответ был релевантным.
Все эти концы, «торчащие» из программы, называются Endpoints, или конечные точки.
Одна и та же конечная точка может работать с несколькими HTTP-методами — запрашивать, получать и менять данные в последовательных запросах.
Коды ответов
В процессе взаимодействия с API вы получаете разные типы сообщений — коды. Они показывают успех или неудачу запроса.
Есть куча кодов ошибок — от 001 до 1000-х, но в целом ориентироваться можно так:
- коды в диапазоне 200 указывают на успех;
- коды в диапазоне 400 указывают на ошибку на основании предоставленной информации: например, требуемый параметр не был отправлен;
- коды в диапазоне 500 указывают на ошибку на серверах API.
Подробная информация об этих сообщениях описана в документации API: обычно там, где говорится об обработке ошибок.
Аутентификация и авторизация
Большинство API-интерфейсов требуют какую-либо аутентификацию пользователя перед выполнением запроса к своим службам. Это мудро: и данные о пользователях получены, и условия безопасности соблюдены.
Аутентификация просто демонстрирует API, кто тот пользователь, который обращается к его службе. Обычно она состоит из имени, пароля и токена доступа.
Авторизация не просто собирает данные, а выдает разрешение на использование API — то есть определяет, что можно и что нельзя делать разным группам пользователей в ходе работы.
Документация API
Очень нужная штука, которую нужно уметь читать хотя бы наискосок. Благодаря документации пользователь и API могут общаться «на одном языке» и оба получают то, что хотят. В ней прописано:
- как вы докажете API, что вы — это вы;
- что можно делать через этот API;
- как передаются параметры в запросах, чтобы API понял, что от него хотят;
- как нужно отправлять эту информацию внутри сервиса;
- количество запросов, которые можно сделать за определенный период времени;
- как будет возвращаться ответ;
- какие коды ответов присутствуют и как обрабатывать возможные полученные ошибки.
Пример документации: единый API для приема платежей, отправки чеков, проведения возвратов и других операций.
Где найти новые API
Большие компании размещают новинки у себя на сайтах и рассказывают об этом в рассылках и социальных сетях. Подпишитесь на обновления любимых компаний, лидеров вашей отрасли, чтобы быть в курсе.
Еще есть открытые платформы, торговые площадки и каталоги, где любой желающий может выставить свой публичный API на продажу.
Размещение API может помочь монетизировать решения компании — и добавить узнаваемости.
А вот сайт, где собрано много API-документации.
А на курсе Skypro «Java-разработчик» можно создать собственный API. Разберетесь, что это такое, зачем нужно и под руководством опытного наставника напишете код API, чтобы разработать веб-приложение.
Как правильно работать с API
- Подготовиться: изучить документацию, зарегистрироваться в системе партнера, если это необходимо, получить ключ.
- Вызвать API, авторизовавшись с вашим ключом.
- Отправить запрос.
- Получить ответ или код ошибки.
- Передать полученные данные в вашу систему или отобразить результат пользователю.
- Наслаждаться успехом.
Как тестировать API
В основном нужно проверять ответы сервера, выполняя запросы к адресам API для тестирования производительности.
Еще писать модульные тесты для проверки бизнес-логики и корректности функций, проверять безопасность, имитируя системные атаки.
Вот что рассказала тестировщица, которая «встретилась» с API:
«Часто API — нелюбимый ребенок у разработчика. Не каждый пишет нормальную документацию, многие умудряются обновлять версии без поддержки старых.
Если API публичный — нужно не забывать поддерживать „песочницу“ для интегрантов. Если внутренний — есть сложности в проверке обновлений бэка и фронта. Если обновился бэк — нужно сразу проверять и API, а об этом многие забывают или не придают значения».
Но при должной поддержке версионности и своевременном обновлении документации проблем не возникает.
Что почитать
Про важность API: манифест Безоса про API в Amazon — на сайте.
Еще API-примеры: как обновлять информацию о доступных вкусах своего мороженого через REST API — доступный ролик на английском.
Главное
API — это не страшно и очень функционально. Современные REST API просты: для работы с ними достаточно знания нескольких команд и знакомства с документацией.
При этом API не только дает возможность задать архитектуру продукта, но и позволяет быстро итерировать наработки со всего мира, быстрее проверять гипотезы, поскольку вы или ваши разработчики будут использовать существующую инфраструктуру.
Он формирует плацдарм для новых разнообразных продуктов на базе вашего. И наоборот — можно подглядеть и применить API-функции, которые уже кто-то создал.
*Продукты компании Meta запрещены на территории РФ.