Код
#статьи

Что такое API и как он работает

Простыми словами объясняем, как программы общаются между собой, и практикуем API-вызовы.

Иллюстрация: Катя Павловская для Skillbox Media

Заходите вы на сайт с вакансиями и ищете работу бэкенд-разработчиком, а там почти в каждой вакансии написано, что нужно уметь работать с REST API, или SOAP API, или просто API. Что всё это значит и зачем нужно программисту? Давайте разбираться.

Что такое API

API (англ. Application Programming Interface — программный интерфейс приложения) — это набор способов и правил, по которым различные программы общаются между собой и обмениваются данными.

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

Допустим, вы покупаете билет в кино с помощью банковской карты. Во время покупки терминал обращается к API банка, который выпустил вашу карту, и отправляет запрос на оплату. А если вы заказываете такси через приложение, оно обращается к платёжной системе тоже через API.

Так терминал отправляет запрос в банк, чтобы человек купил билет в кино
Иллюстрация: Катя Павловская для Skillbox Media

Программный интерфейс похож на договор между клиентом и продавцом. Только клиентом выступает приложение, которому нужны данные, а продавцом — сервер или ресурс, с которого мы эти данные берём. В таком договоре прописываются условия того, как и какие данные может получить клиент.

API встречается практически везде:

  • В языках программирования он помогает функциям корректно общаться друг с другом. Вызывающая функция должна соблюдать тип данных и последовательность параметров вызываемой функции.
  • В операционной системе он помогает программам получать данные из памяти или менять настройки ОС. Поэтому, чтобы разрабатывать приложения под конкретную операционную систему, нужно знать её API.
  • В вебе сервисы общаются друг с другом через программный интерфейс. Если API открытый, то официальную документацию по работе с ним публикуют создатели сервиса-источника. Так, например, выглядит документация Telegram.

Несмотря на то что термин довольно широкий, чаще всего в вакансиях речь идёт именно о третьем варианте.

Почему API называют интерфейсом

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

С помощью интерфейса можно использовать возможности разных систем, не задумываясь о том, как они обрабатывают наши запросы и что у них «под капотом». Например, чтобы позвонить, не обязательно знать, как смартфон обрабатывает нажатия на тачскрин. Важно лишь, что в гаджете есть «кнопка», которая всегда возвращает одинаковый результат в ответ на определённые действия.

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

API — это что-то понятное для пользователя. А вот его реализация может быть очень сложной
Иллюстрация: Катя Павловская для Skillbox Media

Как API помогает писать надёжные программы

Обычно мы не знаем, как программы устроены внутри. Впрочем, нам иногда и не важно, как они работают. Поэтому программную реализацию называют «чёрным ящиком» и прячут за несколькими уровнями абстракций, чтобы пользователям было удобно ими пользоваться.

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

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

Windows, Linux или macOS сами определяют, какие функции нужно вызвать и какие параметры передать, чтобы выполнить те или иные действия. Всё это описывается в документации к API, с которым работают разработчики других программ.

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

Почему API так популярны у программистов

Программные интерфейсы сервисов и библиотек позволяют разработчикам не изобретать велосипеды. Зачем писать код, когда можно воспользоваться готовым?

Вот какие возможности даёт API:

  • Предоставляет доступ к готовым инструментам. Например, к функциям библиотеки для машинного обучения TensorFlow — они помогают быстро создать нейросеть, не тратя время на разработку инструментов с нуля.
  • Повышает безопасность. API позволяет вынести в отдельное приложение функциональность, которая должна быть защищена. Так снижается вероятность некорректного использования этих функций другими программами.
  • Связывает разные системы. Если вам нужно подключить к сайту платёжную систему или авторизацию через соцсети, без API не обойтись.
  • Снижает стоимость разработки. Часто бывает, что дешевле воспользоваться платным API, чем создавать функциональность с нуля.

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

Написали одну строчку кода, подключили API — робот побежал
Иллюстрация: Катя Павловская для Skillbox Media

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

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

Например, в API для анализа текстов будут функции поиска всех однокоренных слов, подсчёта количества союзов и выявления часто встречающихся словосочетаний.

Функции API могут решать не только утилитарные задачи конкретных приложений. Это может стать элементом маркетинга, когда доступ к API предлагается как отдельная услуга.

API — это меню, только вместо еды там функции
Иллюстрация: Катя Павловская для Skillbox Media

Как компании зарабатывают с помощью API

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

Отправили картинки — получили готовое видео
Иллюстрация: Катя Павловская для Skillbox Media

Например, «Яндекс» предоставляет платные API таких технологий:

  • переводчика с машинным обучением;
  • системы распознавания и синтеза речи;
  • платформы облачных вычислений и так далее.

Популярные социальные сети тоже предоставляют доступ к своим API. Через них можно, например, создать игру для «ВКонтакте» или добавить на сайт авторизацию через Google.

При этом компании обычно не раскрывают принципы реализации своих интерфейсов, поэтому для программистов они остаются «чёрными ящиками».

Как происходит вызов функций API

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

Вот пример вызова методов библиотек в языке Python:

# Подключаем библиотеку
import numpy as np
# Вызываем метод, который возвращает модуль числа -5
x = np.abs(-5)
# Выводим переменную x
print(x)

Если API предоставляет функции через интернет (Web API), нужно отправить на сервер HTTP-запрос с данными в формате JSON. Пример синтеза речи с помощью API Yandex.SpeechKit:

import requests
import json

# Помещаем в переменную API_URL адрес API
API_URL = "https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize"

# Помещаем в словарь data данные для отправки в API Yandex.SpeechKit
data = {
    "text": "Привет! Это пример кода для статьи про API в Skillbox Media",
    "lang": "ru-RU",
    "speed": 1,
    "voice": "filipp",
    "emotion": "good"
}

# Преобразуем данные в строку в формате JSON
json_str = json.dumps(data)

# Отправляем данные на сервер и получаем ответ
answer = requests.post(API_URL, json_str)

Можете запустить этот код и послушать результат.

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

Что запомнить

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

API экономит время программистов и уменьшает расходы бизнеса на разработку.



Жизнь можно сделать лучше!
Освойте востребованную профессию, зарабатывайте больше и получайте от работы удовольствие.
Каталог возможностей
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована