Data Science

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

1440
читать 7 мин.
15.12.25

Структура

REST API что это? REST API — это набор правил для обмена данными между приложениями через интернет с использованием стандартных HTTP методов. Он позволяет приложениям общаться друг с другом, отправляя запросы и получая ответы в удобном формате, чаще всего JSON. REST API работает по принципу клиент-серверной архитектуры, где клиент запрашивает данные, а сервер их предоставляет через определенные точки доступа (endpoints).

Что такое REST API в разработке? Это фундаментальная технология современного веба, которая делает возможным существование мобильных приложений, веб-сервисов и интеграций между различными платформами. RESTful сервисы используют стандартные HTTP методы запросов (GET, POST, PUT, DELETE) для выполнения CRUD операций — создание, чтение, обновление и удаление данных. Важная особенность REST — это stateless (без состояния), что означает, что каждый запрос содержит всю необходимую информацию для его обработки.

Ключевые преимущества REST API:

  • Простота использования — базируется на знакомых HTTP протоколах
  • Гибкость — работает с любыми типами данных и форматами
  • Масштабируемость — легко расширяется под растущие потребности
  • Независимость — клиент и сервер развиваются отдельно
  • Кэширование — повышает производительность за счет сохранения ответов

Что такое REST API и как он работает - фото №1

API что это простыми словами

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

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

История из практики: Когда я только начинал изучать веб-разработку, я не понимал, зачем нужны API. Казалось, что можно просто напрямую обращаться к базе данных. Но когда я попытался создать мобильное приложение для своего веб-сайта, я понял гениальность REST API. Один API обслуживал и веб-версию, и мобильное приложение, и даже Telegram-бота. Не нужно было писать отдельную логику для каждой платформы — все работало через единые endpoints.

Как работает REST API: пошаговое объяснение

REST API функционирует по четкой схеме взаимодействия между клиентом и сервером. Давайте разберем этот процесс подробно:

1. Клиент формирует запрос

Ваше приложение создает HTTP-запрос, который включает в себя:

  • URL адрес — куда отправляется запрос (endpoint)
  • HTTP метод — что нужно сделать (GET, POST, PUT, DELETE)
  • Headers заголовки запросов — дополнительная информация (тип контента, токен авторизации)
  • Body тело запроса — данные, которые отправляются (для POST/PUT)

2. Запрос отправляется на сервер

Браузер или приложение отправляет этот запрос через интернет на указанный адрес сервера. Все происходит по протоколу HTTP/HTTPS.

3. Сервер обрабатывает запрос

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

4. Формирование ответа

Сервер собирает данные в JSON формат данных, добавляет status codes (коды ответов) и headers, после чего отправляет ответ обратно клиенту.

5. Клиент получает и обрабатывает ответ

Приложение получает данные, проверяет код ответа (200 — успех, 404 — не найдено, 500 — ошибка сервера) и использует полученную информацию для отображения пользователю.

REST API методы GET POST и прочие

HTTP методы — это глаголы, которые описывают, какое действие вы хотите выполнить с данными. Это основа CRUD операций (Create, Read, Update, Delete):

HTTP метод CRUD операция Назначение Пример использования Имеет body?
GET Read Получение данных Получить список пользователей Нет
POST Create Создание новых данных Создать нового пользователя Да
PUT Update Полное обновление Обновить все данные пользователя Да
PATCH Update Частичное обновление Изменить только email пользователя Да
DELETE Delete Удаление данных Удалить пользователя Нет

Важно понимать: GET-запросы должны быть безопасными (не изменять данные на сервере) и идемпотентными (многократное выполнение дает тот же результат). POST-запросы создают новые ресурсы, поэтому повторное выполнение создаст дубликаты.

Практический кейс: Недавно мой студент делал проект интернет-магазина. Он использовал POST для всего подряд — даже для получения списка товаров! Это серьезная ошибка. GET предназначен для чтения, POST — для создания. Когда мы это исправили, приложение начало работать быстрее (браузер начал кэшировать GET-запросы) и логичнее.

REST API примеры: от теории к практике: от теории к практике

Теория без практики — это как учебник по вождению без машины. Давайте посмотрим на реальные примеры работы с REST API.

Пример 1: Простой GET-запрос

// Отримуємо список користувачів
fetch('https://jsonplaceholder.typicode.com/users')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Помилка:', error));

Этот код делает запрос к бесплатному тестовому API и выводит список пользователей. Метод fetch — это встроенный в JavaScript способ работы с API.

Пример 2: POST-запрос с данными

// Створюємо нового користувача
const newUser = {
  name: 'Анна Коваленко',
  email: 'anna@example.com',
  phone: '+380501234567'
};

fetch('https://jsonplaceholder.typicode.com/users', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(newUser)
})
  .then(response => response.json())
  .then(data => console.log('Створено користувача:', data));

Здесь мы отправляем новые данные на сервер. Обратите внимание на headers — мы указываем, что отправляем JSON, и используем JSON.stringify() для преобразования объекта в строку.

REST API JavaScript примеры с обработкой ошибок с REST API JavaScript примеры с обработкой ошибок

async function getUserData(userId) {
  try {
    const response = await fetch(`https://api.example.com/users/${userId}`);
    
    // Перевіряємо status codes
    if (!response.ok) {
      throw new Error(`HTTP помилка! Статус: ${response.status}`);
    }
    
    const data = await response.json();
    return data;
  } catch (error) {
    console.error('Не вдалося отримати дані користувача:', error);
    return null;
  }
}

// Використання
getUserData(123).then(user => {
  if (user) {
    console.log('Користувач:', user.name);
  }
});

Этот пример показывает правильную обработку ошибок и использование современного синтаксиса async/await, который делает код более читабельным.

Совет от практика: Всегда проверяйте response.ok перед обработкой данных. Многие новички пропускают этот шаг и потом не понимают, почему приложение ломается при ошибках сервера.

Что такое REST API и как он работает - фото №2

REST API тестирование Postman: инструмент для разработчиков

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

Как начать работу с Postman:

  1. Загрузите и установите Postman с официального сайта (бесплатно)
  2. Создайте новый запрос — нажмите «New» → «HTTP Request»
  3. Настройте параметры запроса:
    • Введите URL вашего API
    • Выберите метод HTTP (GET, POST и т.д.).
    • Добавьте headers при необходимости
    • Для POST/PUT добавьте body с данными
  4. Отправьте запрос — нажмите «Send»
  5. Изучите ответ — посмотрите status code, время ответа, полученные данные

Полезные фишки Postman для REST API для начинающих:

  • Collections — группируйте связанные запросы (все endpoints вашего проекта)
  • Environment variables — сохраняйте токены и URL, чтобы не вводить постоянно
  • Tests — пишите автоматические проверки ответов
  • Pre-request Scripts — выполняйте код перед отправкой запроса
  • History — все ваши запросы сохраняются автоматически

Реальный кейс из практики: Когда я работал над проектом для украинского стартапа, бэкэнд-разработчик постоянно менял структуру API. Вместо того, чтобы каждый раз переписывать код в приложении, я создал коллекцию в Postman со всеми endpoints. Когда что-то переставало работать, я за 2 минуты находил проблему в Postman, вместо того чтобы полчаса дебажить код.

Создание REST API с нуля: практическое пособие: практическое руководство

Давайте создадим простой REST API на Node.js с Express на Node.js. Это один из самых популярных стеков для создания RESTful сервисов.

Шаг 1: Установка необходимых инструментов

# Ініціалізація проєкту
npm init -y

# Встановлення Express
npm install express

# Встановлення nodemon для автоперезавантаження
npm install --save-dev nodemon

Шаг 2: Создание базового сервера (файл server.js)

const express = require('express');
const app = express();
const PORT = 3000;

// Middleware для обробки JSON
app.use(express.json());

// Тимчасова "база даних" (масив)
let users = [
  { id: 1, name: 'Олег', city: 'Київ' },
  { id: 2, name: 'Марія', city: 'Львів' }
];

// GET - отримати всіх користувачів
app.get('/api/users', (req, res) => {
  res.json(users);
});

// GET - отримати конкретного користувача
app.get('/api/users/:id', (req, res) => {
  const user = users.find(u => u.id === parseInt(req.params.id));
  if (!user) return res.status(404).json({ message: 'Користувач не знайдений' });
  res.json(user);
});

// POST - створити нового користувача
app.post('/api/users', (req, res) => {
  const newUser = {
    id: users.length + 1,
    name: req.body.name,
    city: req.body.city
  };
  users.push(newUser);
  res.status(201).json(newUser);
});

// PUT - оновити користувача
app.put('/api/users/:id', (req, res) => {
  const user = users.find(u => u.id === parseInt(req.params.id));
  if (!user) return res.status(404).json({ message: 'Користувач не знайдений' });
  
  user.name = req.body.name;
  user.city = req.body.city;
  res.json(user);
});

// DELETE - видалити користувача
app.delete('/api/users/:id', (req, res) => {
  const index = users.findIndex(u => u.id === parseInt(req.params.id));
  if (index === -1) return res.status(404).json({ message: 'Користувач не знайдений' });
  
  users.splice(index, 1);
  res.json({ message: 'Користувач видалений' });
});

app.listen(PORT, () => {
  console.log(`Сервер запущено на http://localhost:${PORT}`);
});

Шаг 3: Запуск сервера

node server.js

Теперь ваш API доступен по адресу http://localhost:3000/api/users. Вы можете тестировать его в Postman или через браузер (для GET-запросов).

Важные моменты при создании REST API:

  • Всегда используйте правильные status codes (200, 201, 404, 500)
  • Валидируйте входные данные перед обработкой
  • Возвращайте понятные сообщения об ошибках
  • Документируйте ваши endpoints
  • Используйте версионирование API (например, /api/v1/users)

Разница между REST и SOAP: что выбрать?

Когда я начинал изучать API, меня смущало большое количество терминов: REST, SOAP, GraphQL, gRPC… Давайте разберемся, чем REST отличается от SOAP — его главного «конкурента».

Характеристика REST SOAP
Протокол Архитектурный стиль (использует HTTP) Строгий протокол (может работать через HTTP, SMTP, TCP)
Формат данных JSON, XML, HTML, plain text Только XML
Сложность Простой, интуитивный Сложный, многословный
Скорость Быстрее (легкие запросы) Медленнее (тяжелые XML-документы)
Безопасность HTTPS, OAuth, JWT WS-Security (встроенная безопасность)
Использование Веб и мобильные приложения Корпоративные системы, финансы, телеком

Когда использовать REST:

  • Разрабатываете веб или мобильное приложение
  • Требуется высокая производительность
  • Работаете с публичным API
  • Важна простота интеграции
  • Большинство современных проектов (около 80% новых API)

Когда использовать SOAP:

  • Работаете с банковскими системами
  • Требуются ACID-транзакции
  • Нужна встроенная безопасность на уровне протокола
  • Интегрируетесь с legacy-системами
  • Работаете в строго регулируемых отраслях

История из жизни: В 2023 году я консультировал украинский банк, который хотел модернизировать свою систему. У них весь бэкэнд работал на SOAP — тяжелый, медленный, но надежный. Мы не стали полностью переходить на REST, а создали промежуточный слой: внутри банк использует SOAP для критических операций, а для мобильного приложения клиентов мы сделали REST API-обертку. Лучшее из двух миров!

Основы клиент-серверной архитектуры в REST

REST основан на принципе разделения клиента и сервера. Это фундаментальная концепция, которую важно понять.

Клиент (Frontend):

  • Отвечает за интерфейс пользователя
  • Отправляет запросы к серверу
  • Обрабатывает и отображает полученные данные
  • Может быть: веб-браузером, мобильным приложением, другим сервером

Сервер (Backend):

  • Хранит и управляет данными
  • Обрабатывает бизнес-логику
  • Отвечает на запросы клиента
  • Работает с базой данных

Преимущества такого разделения:

  1. Независимая разработка — фронтенд и бэкэнд команды работают параллельно
  2. Переиспользование — один API обслуживает веб, мобильные приложения, IoT-устройства
  3. Масштабирование — можно масштабировать клиент и сервер по отдельности
  4. Безопасность — вся критическая логика на сервере, клиент только отображает

Принцип Stateless в REST:

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

// Погано (stateful)
// Перший запит
POST /api/login
{ "username": "user", "password": "pass" }

// Другий запит (сервер "пам'ятає" користувача)
GET /api/profile

// Добре (stateless)
// Кожен запит містить токен авторизації
GET /api/profile
Headers: { "Authorization": "Bearer eyJhbGc..." }

Authentication авторизация API: защита ваших данных: защита ваших данных

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

Основные методы авторизации:

  1. API ключи — простой, но небезопасный для публичных API
  2. Bearer токены (JWT) — самый популярный метод
  3. OAuth 2.0 — для социальных логинов (Google, Facebook)
  4. Basic Auth — логин/пароль в заголовке (только с HTTPS!)

Пример с JWT (JSON Web Token):

// Логін та отримання токена
fetch('https://api.example.com/login', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    email: 'user@example.com',
    password: 'securePassword123'
  })
})
.then(response => response.json())
.then(data => {
  // Зберігаємо токен
  localStorage.setItem('token', data.token);
});

// Використання токена для захищених запитів
const token = localStorage.getItem('token');
fetch('https://api.example.com/user/profile', {
  headers: {
    'Authorization': `Bearer ${token}`
  }
})
.then(response => response.json())
.then(profile => console.log(profile));

Правила безопасности:

  • Никогда не сохраняйте токены в переменных или консоли
  • Используйте HTTPS для всех API-запросов
  • Устанавливайте время жизни токенов (обычно 15 минут — 1 час)
  • Реализуйте refresh-токены для продолжения сессии
  • Не передавайте чувствительные данные в URL (только в body или headers)

Коды ответов HTTP: что означают эти цифры: что означают эти цифры

Status codes — это способ сервера сказать, как прошел запрос. Они разделены на пять групп:

1xx — Информационные (редко используемые)

  • 100 Continue — сервер готов принимать данные

2xx — Успех

  • 200 OK — запрос выполнен успешно
  • 201 Created — ресурс создан (после POST)
  • 204 No Content — успешно, но нет данных для возврата (часто после DELETE)

3xx — Перенаправление

  • 301 Moved Permanently — ресурс переехал навсегда
  • 302 Found — временное перенаправление

4xx — Ошибка клиента

  • 400 Bad Request — неправильный запрос (проверьте синтаксис)
  • 401 Unauthorized — требуется авторизация
  • 403 Forbidden — доступ запрещен (даже с авторизацией)
  • 404 Not Found — ресурс не найден
  • 429 Too Many Requests — превышен лимит запросов

5xx — Ошибка сервера

  • 500 Internal Server Error — что-то сломалось на сервере
  • 502 Bad Gateway — проблема с промежуточным сервером
  • 503 Service Unavailable — сервер временно недоступен

Практический пример обработки:

fetch('https://api.example.com/data')
  .then(response => {
    switch(response.status) {
      case 200:
        return response.json();
      case 401:
        throw new Error('Потрібна авторізація');
      case 404:
        throw new Error('Дані не знайдено');
      case 500:
        throw new Error('Помилка сервера, спробуйте пізніше');
      default:
        throw new Error(`Несподівана помилка: ${response.status}`);
    }
  })
  .then(data => console.log(data))
  .catch(error => console.error(error.message));

Мем из практики: «404 — твоя социальная жизнь после того, как начал учить программирование 😄»

Что такое REST API и как он работает - фото №3

 

Подытожим: ваш путь к овладению REST API

Главное: REST API — это стандартный способ обмена данными между приложениями через интернет. Освоить базовые принципы можно за 2-4 недели практики, а для создания собственных API понадобится 2-3 месяца изучения бэкэнд-разработки. Знание REST API открывает двери в 70% вакансий веб-разработки в Украине.

Что вам понадобится для старта:

  • Время: 1-2 часа ежедневно в течение месяца
  • Базовые знания: HTML, CSS, JavaScript (уровень ES6)
  • Инструменты: VS Code, Postman, Node.js
  • Английский: минимум A2 для чтения документации
  • Терпение: готовность разобраться с ошибками 400, 401, 404, 500

Пошаговый план обучения:

  1. Неделя 1: Теория REST, HTTP методы, изучение публичных API
  2. Неделя 2: Практика с Postman, тестирование различных endpoints
  3. Неделя 3: JavaScript fetch API, создание простых запросов, создание простых запросов
  4. Неделя 4: Создание собственного REST API на Node.js/Express
  5. Неделя 5-8: Продвинутые темы (авторизация, валидация, документация)

Реальные перспективы на рынке Украины:

  • Через 1 месяц: Понимание работы с API, первые пэт-проекты
  • Через 3 месяца: Готовность к Junior Frontend с навыками API интеграции с навыками API интеграции
  • Через 6 месяцев: Возможность создавать полноценные REST API (Backend)
  • Зарплата: Junior Frontend — $500-800, Junior Backend — $600-1000

Ключевые навыки для резюме:

  • REST API интеграция и тестирование
  • Работа с HTTP методами (GET, POST, PUT, DELETE)
  • JSON обработка и валидация данных и валидация данных
  • Работа с Postman и документацией API
  • Понимание клиент-серверной архитектуры
  • Базовая работа с authentication (JWT, OAuth)

С чего начать прямо сейчас:

  1. Сегодня: Установите Postman и протестируйте бесплатный API (jsonplaceholder.typicode.com)
  2. Эта неделя: Создайте простую страницу, которая получает данные через fetch
  3. Этот месяц: Пройдите курс по REST API на YouTube или freeCodeCamp
  4. Через месяц: Создайте свой первый REST API проект

Готовы углубиться в мир веб-разработки?

В школе DAN.IT мы обучаем созданию REST API на практических проектах. Наши студенты создают реальные сервисы с нуля — от простых To-Do приложений до сложных систем с авторизацией и базами данных.

Запишитесь на бесплатную консультацию DAN.IT и узнайте, какой курс подойдет именно вам: Frontend с акцентом на API интеграцию или Full Stack с созданием собственных RESTful сервисов.

Помните: 65% начинающих разработчиков бросают обучение, столкнувшись с первыми 401 и 500 ошибками. Не будьте среди них — каждая ошибка делает вас сильнее. Сохраните эту статью в закладки, возвращайтесь к примерам кода, и через месяц вы будете удивлены своим прогрессом!

Ваш чек-лист для старта работы с REST API

Теоретическая база:

  • — Понять, что такое REST API и зачем он нужен
  • — Изучить основные HTTP методы (GET, POST, PUT, DELETE)
  • — Разобраться с кодами ответов (2xx, 4xx, 5xx)
  • — Понять принцип клиент-серверной архитектуры и принцип клиент-серверной архитектуры
  • — Изучить JSON формат данных

Практические навыки:

  • — Установить и настроить Postman
  • — Протестировать публичное API (например, JSONPlaceholder)
  • — Написать первый GET-запрос в JavaScript
  • — Создать POST-запрос с отправкой данных
  • — Обработать ошибки и различные коды состояния

Инструменты разработчика:

  • — Установить Node.js и npm
  • — Настроить VS Code с расширениями (REST Client, Thunder Client)
  • — Изучить Chrome DevTools → Вкладка «Сеть» → Сетевая вкладка
  • — Создать аккаунт на GitHub для портфолио

Первый проект:

  • — Выбрать идею (список задач, погода, курсы валют)
  • — Найти подходящее публичное API
  • — Создать HTML/CSS интерфейс
  • — Интегрировать API запросы
  • — Опубликовать на GitHub Pages

Готовы к следующему уровню? Запишитесь на бесплатный пробный урок в DAN.IT и создайте свой первый полноценный проект с REST API под руководством опытного ментора!

Начните свой путь в веб-разработке сегодня!

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

Часто задаваемые вопросы

Сколько времени нужно, чтобы научиться работать с REST API?

Базовое понимание REST API и умение делать простые запросы можно получить за 2-3 недели ежедневной практики. Для создания собственных RESTful сервисов потребуется 2-3 месяца изучения backend-разработки. Если вы уже знаете JavaScript, освоить работу с API через fetch можно буквально за несколько дней.

Нужно ли знать backend, чтобы работать с REST API?

Нет, необязательно. Фронтенд-разработчики постоянно работают с чужими API, не создавая их. Достаточно понимать, как отправлять запросы и обрабатывать ответы. Однако базовое понимание серверной части поможет лучше общаться с backend-командой и быстрее находить проблемы.

Какая разница между GET и POST запросами?

GET используется только для получения данных и не должен изменять информацию на сервере. POST создает новые данные. GET-запросы не имеют body (данные передаются в URL), их можно кэшировать и сохранять в истории браузера. POST-запросы отправляют данные в теле запроса, они не кэшируются и подходят для отправки конфиденциальной информации.

Что делать, если API возвращает ошибку 401 Unauthorized?

Ошибка 401 означает, что требуется авторизация. Проверьте: отправили ли вы токен авторизации в заголовке Authorization, действителен ли ваш токен (не истек ли срок), правильно ли указан формат токена (обычно «Bearer YOUR_TOKEN»). Если используете API-ключ, убедитесь, что он активен и правильно вставлен.

Можно ли использовать REST API бесплатно для учебных проектов?

Да! Существует множество бесплатных публичных API для обучения: JSONPlaceholder (фейковые данные), OpenWeatherMap (погода, бесплатный тариф), The Movie Database (фильмы), CoinGecko (криптовалюты), REST Countries (информация о странах). Многие сервисы предлагают бесплатные лимиты запросов (например, 1000-10000 в месяц), которых хватит для обучения.

Как защитить свой API от несанкционированного доступа?

Основные методы защиты: использование токенов авторизации (JWT, OAuth), ограничение количества запросов (rate limiting), валидация всех входящих данных, использование HTTPS для шифрования, CORS-политики для контроля доступа с разных доменов. Никогда не храните API-ключи в публичном коде на GitHub — используйте переменные окружения (.env файлы).

В чем разница между REST API и GraphQL?

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

Как тестировать REST API без написания кода?

Используйте Postman — это графический инструмент для тестирования API. Вы просто вводите URL, выбираете метод (GET, POST и т.д.), добавляете данные если нужно, и нажимаете Send. Также есть альтернативы: Insomnia, Thunder Client (расширение для VS Code), curl в командной строке. Все эти инструменты бесплатны и не требуют навыков программирования.

Почему мой fetch запрос не работает, хотя в Postman API отвечает нормально?

Частые причины: CORS-политика (сервер блокирует запросы с вашего домена), неправильные заголовки (забыли указать Content-Type: application/json), ошибки в async/await (не используете await или try/catch), проблемы с обработкой Promise (нет .then или catch). Проверьте консоль браузера (F12) — там будет точное описание ошибки.

Нужно ли изучать REST API, если я хочу стать frontend-разработчиком?

Абсолютно необходимо! Около 90% вакансий frontend-разработчика требуют навыков работы с API. Современные веб-приложения получают данные с сервера через API, отправляют формы, загружают изображения — все через REST API. Это один из ключевых навыков, без которого невозможно создать полноценное интерактивное приложение. Хорошая новость — это не сложно освоить!