logo
Web
Максим Колмогоров
Максим Колмогоров
SEO

Что такое API

Объясняем простыми словами для не программистов.

Что такое API

Когда пытаешься найти информацию о том, что такое API, находишь огромное количество ненужной или очень сложной для усвоения информации. Многие статьи перегружены обилием технических терминов, и обычному обывателю такое крайне сложно понять. Так что, давайте это исправим и объясним все так просто, чтобы понял даже ребенок.

API - это…

Аббревиатура API расшифровывается как - application programming interface, что с английского языка дословно переводится как “интерфейс прикладного программирования”.

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

Примеры API

Давайте рассмотрим пару примеров.

API для сайта 

Есть сайт ozon.ru (не реклама), он состоит из двух частей (как пример, так-то этих частей больше): внешняя часть - то, что мы видим в браузере, и серверная часть - то, что сокрыто от наших глаз, но очень важно. Все товары, все зарегистрированные пользователи хранятся на сервере в базе данных во второй “скрытой” части. Как же нашей “внешней части” получить эти данные? Конечно же, с помощью API. По адресу ozon.ru/api/v1 находится то самое API, которое позволяет сайту получить данные из базы данных.

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

API для приложения

Также можно рассмотреть тот же ozon.ru и его мобильное приложение. Откуда оно берет данные? Все так же с сервера через API. Это может быть как то же самое API, что и для сайта, так и совсем другое, только для мобильного приложения. Зачем два? Причин много, как минимум - для безопасности и автономности.

API для банковских платежей

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

Эквайринг - технология безналичного приема платежей с использованием банковских карт и систем бесконтактной оплаты.

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

И это еще не все

API - это широкое понятие, любая подпрограмма, скрывающая в себе какой-то сложный функционал, может называться API. Например, в Linux, на основе которого сделаны многие операционные системы (Ubuntu, Android), для запуска операционной системы при включении устройства надо вызывать соответствующее API. В языке программирования Node.js для работы с файловой системой используется файловое API. В таком случае, самое главное, API должно быть изолированно от основной программы и иметь свой “независимый” код. 

Виды API

Существует три основных типа API:

Публичное API

Обычно это какая-то открытая и доступная всем вещь. Например: API Chat GPT, Google SMTP и даже API любого банка для онлайн оплаты. Да, сначала надо зарегистрироваться в этих сервисах, но это ведь не проблема? В большинстве случаев документация по публичному API открыта и находится в интернете.

Внутреннее API

Это закрытое API, созданное компанией для себя, вышеуказанный пример с ozon.ru - хороший пример: API для сайта и мобильного приложение как раз можно считать внутренним. Чаще всего документация по API скрыта от посторонних глаз.

Партнерское API

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

И еще

Некоторые выделяют еще типы, например “составное API” (комбинирование прошлых трех), но мы тут этого делать не будем. Если очень постараться, мы еще свои пару новых типов выдумаем. Так что, на этом закончим.

Стандарты API

Страшные слова: GraphQL, RPC, SOAP и REST. Эта часть уже для технических специалистов, но мы все равно постараемся объяснить просто, хотя будет сложно.

REST

Начнем с конца, так будет проще. Смотрите, существуют в интернете такие вещи как “протоколы передачи данных”. Такими протоколами являются HTTP (для браузеров), SMTP (для писем) и WebSocket. Более подробно прочитайте на википедии, если интересно. Так вот, большинство API работает на HTTP. И REST не исключение.

REST - это такой стандарт, который говорит, что для передачи данных мы должны использовать протокол HTTP и явные маршруты для получения и передачи этих данных. Еще помните наш разговор про ozon.ru? Так вот, для добавления товара в корзину используется маршрут ozon.ru/api/v2/addToCart. Это как раз по стандарту REST. 

Обычно для передачи данных используют формат данных в JSON, но также допускаются и другие, например Form Data. Пример отправки HTTP-запроса c форматом отправляемых данных в JSON:

пример http post запроса с json
В этом примере для отправки запросов используется программа Postman.

SOAP

SOAP - стандарт, работающий на протоколах HTTP, TCP и SMTP, но для отправки и получения использует формат данных в XML. Старый протокол, сейчас его сложно увидеть в новых проектах.

RPC

RPC - самый сложный для восприятия стандарт. Работает по HTTP, TCP и UDP. В основном манипулирует бинарным форматом данных (нулями и единицами). Данный стандарт требует, чтобы мы вызывали на нашем сервере через HTTP (например) конкретную функцию внутри нашего сервера. Как? Это уже на плечах того кто реализует это.

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

GraphQL

GraphQL - молодой стандарт, появился в 2015 году, работает на HTTP, для запроса данных использует свой собственный язык - GraphQL, а для получения JSON. Интересный факт, в отличии от REST не имеет большого количества маршрутов, все делается через одну точку входа. То есть у нас нет большего количества адресов по типу /api/init, /api/cart/add, мы просто имеем один маршрут - /api. Вот туда мы и посылаем все запросы на GraphQL. Пример GraphQL запроса:

пример graphql запроса
Снова Postman.
***

Надеемся, после прочтения данной статьи у Вас появилось понимание что такое API. Если есть вопросы, то смело оставляйте их в комментариях, мы постараемся ответить.

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

Оставьте комментарий

Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c политикой конфиденциальности

Нет комментариев