Добавить в корзинуПозвонить
Найти в Дзене
Lyakhov Eugene

Что такое API?

API расшифровывается как Application Programming Interface (программный интерфейс приложения). По своей сути, API — это набор кода, который принимает входные данные и выдает предсказуемые результаты. Представьте API как посредника, который позволяет приложениям взаимодействовать друг с другом, не требуя прямого доступа к их коду или базам данных. Почти каждый цифровой сервис, которым вы пользуетесь сегодня — социальные сети, электронная коммерция, онлайн-банкинг, приложения для заказа такси — все они представляют собой множество API, работающих сообща. Примеры: Когда инженеры создают API, они четко определяют, какие входные данные он принимает и какие выходные данные выдает, обеспечивая предсказуемое поведение в разных приложениях. API работают по простой модели «запрос-ответ»: Каждый API требует определенные типы входных данных, и передача некорректных данных может привести к ошибкам. Например: если вы попытаетесь передать свое имя в Google Maps API в качестве входных данных, это в
Оглавление

API расшифровывается как Application Programming Interface (программный интерфейс приложения).

По своей сути, API — это набор кода, который принимает входные данные и выдает предсказуемые результаты.

-2

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

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

Примеры:

  • Погодный API – если вы передаете название города («Нью-Йорк»), API возвращает текущую температуру, влажность и погодные условия.
  • API Uber для поездок – если вы указываете адрес посадки и назначения, API находит ближайшего доступного водителя и рассчитывает примерную стоимость поездки.
  • API sorted() в Python – если вы передаете список чисел ([5, 3, 8, 1]), API возвращает отсортированный список ([1, 3, 5, 8]).

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

-3

API работают по простой модели «запрос-ответ»:

  1. Клиент (например, веб-приложение или мобильное приложение) отправляет запрос к API.
  2. API (размещенный на сервере API) обрабатывает запрос, взаимодействует с необходимыми базами данных или сервисами и подготавливает ответ.
  3. API отправляет ответ обратно клиенту в структурированном формате (обычно JSON или XML).

Входные данные

Каждый API требует определенные типы входных данных, и передача некорректных данных может привести к ошибкам.

Например: если вы попытаетесь передать свое имя в Google Maps API в качестве входных данных, это вряд ли сработает.

Некоторые API также требуют, чтобы входные данные были в определенном формате.

Пример: API обмена валют может потребовать ввод в формате «USD_TO_EUR» вместо «usd to euro».

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

Выходные данные

Подобно тому, как API требуют определенных входных данных, они также возвращают хорошо структурированные выходные данные.

Например, Google Maps API всегда возвращает координаты в одном и том же формате:

json

{
"latitude": 40.6892,
"longitude": -74.0445
}

Если API не может найти местоположение, он выдает ответ об ошибке с пояснением:

json

{
"error": "Invalid address format",
"code": 400
}

1. Как API обеспечивают работу современных приложений

Приложения, которыми вы пользуетесь каждый день — будь то Gmail, Instagram, Uber или Spotify — по сути, являются набором API с «причесанным» пользовательским интерфейсом (UI) сверху.

Большинство приложений следуют архитектуре «фронтенд/бэкенд», где:

  • Бэкенд состоит из API, которые обрабатывают данные, реализуют бизнес-логику и взаимодействуют с базами данных.
  • Фронтенд — это графический пользовательский интерфейс (GUI), который взаимодействует с этими API, делая приложения удобными для пользователя и доступными без необходимости писать код.

-4

Давайте разберем это на реальном примере: Uber.

Бэкенд

До того, как приложение Uber стало стильным и удобным, компания сначала создала основные API, которые обеспечивают работу сервиса заказа такси:

  • Поиск ближайших водителей
  • Расчет стоимости и маршрута
  • Обработка платежей
  • Отслеживание в реальном времени
  • Сопоставление пассажиров и водителей

Эти API работают на серверах Uber, образуя бэкенд-инфраструктуру. Каждый раз, когда вы заказываете поездку, отслеживаете водителя или производите оплату, эти бэкенд-API обрабатывают ваш запрос.

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

Фронтенд

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

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

2. Типы API

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

1. Открытые API (публичные API)

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

Пример: YouTube Data API

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

Например, YouTube Search API позволяет разработчикам получать результаты поиска видео по ключевому слову. Если вы отправите запрос к API с поисковым запросом «машинное обучение», он вернет структурированный ответ (в формате JSON), содержащий список соответствующих видео с заголовками, описаниями, миниатюрами и ссылками.

Это невероятно полезно, так как позволяет разработчикам создавать собственные приложения на основе YouTube.

2. Внутренние API (частные API)

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

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

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

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

3. Программные интерфейсы (Code Interfaces)

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

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

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

Пример: встроенный API списков в Python

При работе со списками Python предоставляет набор встроенных функций (методов) для управления данными.

python

numbers = [5, 3, 8, 1, 4]
numbers.sort()
# Вызов API для сортировки списка

fruits = ["apple", "banana"]
fruits.append("orange")
# Вызов API для добавления элемента
fruits.pop()
# Вызов API для удаления последнего элемента

Вместо того чтобы писать алгоритмы сортировки с нуля, разработчики могут использовать sort() или sorted() в Python.

Программные API не ограничиваются только встроенными функциями языка. Возьмем TensorFlow — библиотеку для ИИ/МО. Она предоставляет высокоуровневый API для обучения моделей машинного обучения, избавляя от необходимости реализовывать сложные математические операции с нуля.

Например, создание нейронной сети с использованием API TensorFlow выглядит так:

python

import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(64, activation="relu")
])

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

3. Методы взаимодействия API

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

1. REST (Representational State Transfer)

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

REST API следуют набору принципов проектирования и используют HTTP-методы (GET, POST, PUT, DELETE) для выполнения операций.

REST API основаны на ресурсах, и доступ к каждому ресурсу осуществляется через URL (конечную точку). API следует модели «клиент-сервер», то есть клиент отправляет запрос, сервер обрабатывает его и отправляет ответ.

Пример: REST API для книжного магазина

Получение списка книг (GET-запрос):

text

GET https://api.bookstore.com/books

Ответ (JSON):

json

[
{
"id": 1,
"title": "Clean Code",
"author": "Robert C. Martin"
},
{
"id": 2,
"title": "The Pragmatic Programmer",
"author": "Andrew Hunt"
}
]

2. SOAP (Simple Object Access Protocol)

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

SOAP-сообщения отправляются в формате XML и требуют файл WSDL (Web Services Description Language), который определяет доступные функции API и структуру запроса.

Пример: SOAP API для банковского сервиса

Запрос: получение баланса счета

xml

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bank="http://bank.example.com/">
<soapenv:Header/>
<soapenv:Body>
<bank:GetAccountBalance>
<bank:accountNumber>123456</bank:accountNumber>
</bank:GetAccountBalance>
</soapenv:Body>
</soapenv:Envelope>

Ответ:

xml

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bank="http://bank.example.com/">
<soapenv:Body>
<bank:GetAccountBalanceResponse>
<bank:balance>5000.00</bank:balance>
</bank:GetAccountBalanceResponse>
</soapenv:Body>
</soapenv:Envelope>

3. GraphQL

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

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

Пример: получение профиля пользователя и его последних постов за один запрос.

Запрос:

graphql

{
user(id: 123) {
name
email
posts {
title
likes
}
}
}

Ответ:

json

{
"data": {
"user": {
"name": "Alice",
"email": "alice@example.com",
"posts": [
{
"title": "Hello World",
"likes": 100
},
{
"title": "GraphQL is Amazing!",
"likes": 200
}
]
}
}
}

4. gRPC

gRPC (Google Remote Procedure Call) — это высокопроизводительный метод взаимодействия API, который использует Protocol Buffers (Protobuf) вместо JSON или XML, что делает его быстрее и эффективнее.

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

4. Как использовать API (пошаговое руководство)

Использование API поначалу может показаться сложным, но оно следует простой модели «запрос-ответ». Вот руководство о том, как находить, получать доступ и взаимодействовать с API шаг за шагом:

Шаг 1: Найдите подходящий API

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

Где искать API?

  • Каталоги публичных API:
    RapidAPI
    – торговая площадка API с бесплатными и платными вариантами.
    Postman API Network – коллекция публичных API.
    API List – забавный список бесплатных публичных API.
    GitHub’s Public API List – коллекция Open Source API.
  • Официальная документация API:
    Google APIs
    X API (ранее Twitter)
    OpenWeather API

Шаг 2: Прочитайте документацию API

Документация API объясняет, как использовать API, какие конечные точки доступны, как проходит аутентификация и какие форматы ответов.

Пример: OpenWeatherMap API

API OpenWeatherMap позволяет пользователям получать данные о погоде в реальном времени. Разберем его ключевые компоненты:

URL API:

text

https://api.openweathermap.org/data/3.0/weather?q=city_name&appid=YOUR_API_KEY

Обязательные параметры:

  • q: Название города (например, London)
  • appid: API-ключ (требуется для доступа)

Шаг 3: Получите доступ к API (API-ключ / Аутентификация)

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

Распространенные методы аутентификации:

  • API Key – уникальный ключ, предоставляемый сервисом API.
  • OAuth 2.0 – безопасный вход через Google, Github и т.д.
  • JWT (JSON Web Token) – токен-ориентированная аутентификация.
  • Basic Authentication – имя пользователя + пароль (кодируется в Base64).

Пример: Получение API-ключа (OpenWeather API)

  1. Зарегистрируйтесь на https://home.openweathermap.org/users/sign_up.
  2. Перейдите в раздел API keys и сгенерируйте ключ.
  3. Используйте API-ключ в запросах:

text

GET https://api.openweathermap.org/data/2.5/weather?q=London&appid=YOUR_API_KEY

Шаг 4: Протестируйте API с помощью Postman или cURL

Прежде чем писать код, протестируйте API, чтобы увидеть, как он отвечает.

Вариант 1: Использование Postman (рекомендуется для начинающих)

  1. Скачайте и установите Postman.
  2. Нажмите «New Request», введите URL конечной точки API (https://api.openweathermap.org/data/3.0/weather?q=London&appid=YOUR_API_KEY).
  3. Выберите GET в качестве HTTP-метода.
  4. Нажмите «Send» и просмотрите ответ в формате JSON.

Вариант 2: Использование cURL (для пользователей командной строки)

Вы также можете тестировать API прямо из командной строки с помощью cURL.

bash

curl -X GET "https://api.openweathermap.org/data/3.0/weather?q=New+York&appid=YOUR_API_KEY"

Шаг 5: Напишите код для вызова API

Теперь, когда вы протестировали API, пришло время интегрировать его в ваше приложение.

Пример: Вызов API на Python

python

import requests

API_KEY = "YOUR_API_KEY"
CITY = "New York"

url = f"https://api.openweathermap.org/data/3.0/weather?q={CITY}&appid={API_KEY}"

response = requests.get(url)

if response.status_code == 200:
data = response.json()
temperature = data['main']['temp']
print(f"Current temperature in {CITY}: {temperature}°C")
else:
print(f"Error retrieving data: Status code {response.status_code}")

  • requests.get(url) – отправляет API-запрос.
  • response.json() – преобразует ответ в JSON.
  • if response.status_code == 200 – проверяет, был ли запрос успешным.

Шаг 6: Обрабатывайте ошибки и ограничения по частоте запросов

API не всегда возвращают идеальные ответы. Вы должны обрабатывать:

  • Некорректные входные данные (например, неверное название города).
  • Ошибки аутентификации (например, истекший срок действия API-ключа).
  • Превышение лимитов запросов (rate limits).

Пример: Обработка ошибок API на Python

python

import requests

API_KEY = "YOUR_API_KEY"
CITY = "New York"

url = f"https://api.openweathermap.org/data/3.0/weather?q={CITY}&appid={API_KEY}"

response = requests.get(url)

if response.status_code == 200:
data = response.json()
weather_description = data['weather'][0]['description']
print(f"Current weather in {CITY}: {weather_description}")
elif response.status_code == 401:
print("Error: Invalid API key")
elif response.status_code == 404:
print("Error: City not found")
else:
print(f"Unexpected error occurred: Status code {response.status_code}")

Шаг 7: Используйте ответы API в вашем приложении

После того как вы получили данные от API, вы можете динамически отображать их в веб- или мобильном приложении.

Пример: Вы можете создать погодную панель (dashboard) с использованием OpenWeatherMap API.

  1. Получить данные о погоде в реальном времени от API.
  2. Обработать и извлечь необходимые детали (температура, влажность, состояние).
  3. Отобразить отчет о погоде в удобном для пользователя формате.

Спасибо, что прочитали!

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

Если у вас есть вопросы или предложения, оставьте комментарий.

Страховка на собеседовании и поиск работы

Знание есть, но стресс мешает ?

Сообщество для прокачки карьеры и поиска работы в IT:

Платформа - https://itcareergym.tech/#home
Подпишись на
https://t.me/IT_Interview_Partner_Bot
Подпишись на
https://t.me/LyakhovEugene
Курс System Design Website
https://stepik.org/a/279467