Код
#статьи

Что такое API и как он помогает в создании программных систем

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

 vlada_maestro / shutterstock

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

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

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

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

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

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

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

Программную (и не только) систему, внутреннее устройство которой скрыто или не важно при решении текущей задачи, принято называть “чёрным ящиком» — потому что мы не знаем/не принимаем во внимание то, что там происходит. А само сокрытие деталей реализации — уровнем абстракции.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Так, скажем, Яндекс, помимо прочего, предоставляет платный API своих технологий:

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

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

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

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

Способ вызова функции API описывается в документации.

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

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

Если API предоставляет функции через интернет (WebAPI), нужно отправить на сервер 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",
    "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 вы сможете на наших курсах по программированию — выбирайте любой и становитесь востребованным специалистом.

* Решением суда запрещена «деятельность компании Meta Platforms Inc. по реализации продуктов — социальных сетей Facebook и Instagram на территории Российской Федерации по основаниям осуществления экстремистской деятельности.

Учись бесплатно:
вебинары по программированию, маркетингу и дизайну.

Участвовать
Понравилась статья?
Да

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

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