Найти тему
Kata Academy

Что такое API — кратко самое важное про технологию

Знание API встречается в вакансиях разработчиков Fullstack и Backend, а еще у QA — Тестировщиков ПО.

Разбираемся, что такое API, как работает и применяется в программировании и тестировании.

Немного теории

API (Application programming interface) — это специальный протокол для взаимодействия компьютерных программ, который позволяет использовать функции одного приложения другим.

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

Ничего непонятно, а можно попроще?

Можно. Разберемся на отдаленном от программирования примере — случае аренды квартиры.

Есть две стороны — арендодатель и арендатор. Они договариваются о взаимодействии — первый сдает квартиру второму за определенную плату.

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

API — точно такой же договор, только для программного обеспечения. По сути этот протокол отвечает на вопрос «Как ко мне, к моей системе, можно обратиться?».

-2

API включает в себя:

  • саму операцию, которую мы можем выполнить
  • данные, которые поступают на вход
  • данные, которые оказываются на выходе (контент данных или сообщение об ошибке)

Получается, API — то же самое, что и функция?

И да, и нет. Определения действительно похожи, но API может быть как одной функцией, так и набором.

-3

Эти наборы можно группировать по функционалу. Например:

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

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

Каждая группа API имеет свой контракт, в котором прописано, какие операции можно выполнять и какие функции там будут.

Важно: Функции можно переиспользовать — то есть одну и ту же функцию допустимо включать в разные API.

Теперь совсем запутался. Если API — это набор функций, то причем тут интерфейс? Слово даже в названии есть!

Поясняем. В программировании контракт — почти то же самое, что интерфейс. Пользователи работают с GUI — graphical user interface (интерфейс, который можно увидеть).

Программы работают с API — Application programming interface. Им не нужна графика, только контракт.

-4

Алло, API, вызываю тебя!

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

Например, на сайте интернет-магазина подключена Яндекс.Карта, где можно ввести свой адрес и увидеть ближайший пункт выдачи товара.

Чтобы все работало, нужно подключить Яндекс.Карты к сайту по API.

Как это будет работать:

  • Покупатель вводит адрес в поиск на сайте
  • Сайт отправляет запрос в Яндекс.Карты по API
  • Яндекс.Карты возвращают ответ
  • Сайт его обрабатывает и отображает результат пользователю

При этом пользователь не видит этого взаимодействия, но оно есть.

В итоге — кто и где использует API?

API используют разработчики и тестировщики.

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

Тестировщики используют API для тестирования ПО и оптимизации процессов.

Что еще почитать?