Аббревиатуру API часто можно встретить в вакансиях разработчиков программного обеспечения, особенно, если сфера деятельности так или иначе связана с вебом. Это специальная инфраструктура, используемая для “общения” программ друг с другом. Сама аббревиатура API расшифровывается как “Application Programming Interface” или просто программный интерфейс. Для многих продуктов процесс разработки или налаживания существующего API является обязательной частью процесса. Даже начинающему разработчику желательно понимать принципы его работы, а еще лучше уметь с ним взаимодействовать.

Что такое API

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

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

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

Особенности API

При работе с API нужно учитывать следующие особенности:

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

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

  • взаимодействие с файловыми системами;
  • хранения данных;
  • отрисовка графики;
  • воспроизведение медиа-контента;
  • использование сетевых возможностей.

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

Что делает API таким популярным

Сторонние API обычно безопаснее и лучше самописных во всех отношениях, так как над ними работает команда разработчиков, которая дорожит своей репутацией. Для большинства проектов совсем не требуется “изобретать колесо”, однако ничего не мешает создать и использовать собственное, закрытое API. Такое решение часто применяется в крупных проектах, где есть несколько команд разработчиков.

У API есть следующие преимущества:

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

Какой функционал может входить в API

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

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

Вызов функции API

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

В качестве примера посмотрим, как подключить библиотеку в Python и выполнить ее вызов:

Иначе будет выглядеть вызов API, предоставляющего доступ к своему функционалу через интернет. Процесс вызова производится отправкой HTTP-запроса с данными в формате JSON:

Еще есть вариант с косвенным вызовом функций API, когда есть некий “посредник”. Самый банальный пример - обновление страницы в браузере, когда используется специальная кнопка у адресной строки. В данном случае “посредником” выступает графический интерфейс программы. Однако в качестве “посредника” может быть другая функция или даже другое API.

Практическое использование API

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

Тестирование API

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

Протестируем стандартную отправку и обработку запроса:

1. Перейдя на главную Postman нажмите кнопку “New”. В выпадающем списке выберите “Request”.

2. Появится окошко с параметрами настраиваемого запроса. Здесь требуется просто задать его название и описание, а также коллекцию, в которой он будет хранится.

3. Откроется форма создания GET-запросов. Укажите URL-адрес запроса. В первой части ссылки требуется указать адрес сервера, где развернута ваша TMC.

Форма создания GET-запроса

Форма создания GET-запроса

4. В блоке параметров укажите ключи запроса. Для примера попытаемся получить данные об удаленных элементах. Выставьте значение isDeleted=true.

Заполнение параметров

Заполнение параметров

5. Переключитесь во вкладку “Authorization”. Там требуется указать данные для вашей или пользовательской идентификации. Сервис поддерживает множество типов авторизации, поэтому используйте ту, которая вам кажется наиболее удобной.

Доступные типы авторизации

Доступные типы авторизации

6. Нажмите кнопку “Send” в верхней части интерфейса для отправки запроса. Статус запроса с подробным разбором можно будет увидеть в нижней части.

Создание тестов в Postman

Прием и отправка запросов позволяет получить лишь самое базовое представление о работоспособности подключенного API. Для более подробного тестирования потребуется воспользоваться другими инструментами сервиса. Сами тесты требуется писать на языке JavaScript, но можно использовать и встроенные в сервисе шаблоны.

В качестве примера рассмотрим простой код, который будет будет проверять проект на работоспособность (код 200, есть ответ), находить и выводить ранее удаленные редакции.

Пример кода:

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

Пример редактора скриптов для тестирования

Пример редактора скриптов для тестирования

Все результаты тестирования находятся во вкладке “Test Results”.

Реализация функционала через API

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

Создайте файл index.js или любой другой для записи скрипта. В рассматриваемом примере применяется следующий скрипт:

Отдельно обратим внимание на функцию request. Здесь требуется указывать метод POST для передачи данных в API Snipcart.

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

Заключение

Резюме:

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

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