PurpleSchool — курсы программирования онлайн
  • Пути
    • Frontend React разработчик
    • Frontend Vue разработчик
    • Backend разработчик Node.js
    • Fullstack разработчик React / Node.js
    • Mobile разработчик React Native
    • Backend разработчик Golang
    • Devops инженер
    • Backend разработчик Python
  • AI для кодаНовое
  • О нас
    • Отзывы
    • Реферальная программа
    • О компании
    • Контакты
  • Иконка открытия меню
    • Сообщество
    • PurpleПлюс
    • AI Собеседование
    • AI тренажёр
    • Проекты
PurpleSchool — платформа бесплатных roadmap и курсов для разработчиков
ютуб иконка
Telegram иконка
VK иконка
VK иконка
Курсы
ГлавнаяКаталог курсовFrontendBackendFullstack
Практика
КарьераПроектыPurpleПлюс
Материалы
БлогБаза знаний
Документы
Договор офертаПолитика конфиденциальностиПроверка сертификатаМиграция курсовРеферальная программа
Реквизиты
ИП Ларичев Антон АндреевичИНН 773373765379contact@purpleschool.ru

PurpleSchool © 2020 -2026 Все права защищены

  • Курсы
    • FrontendИконка стрелки
    • AI разработкаИконка стрелки
    • BackendИконка стрелки
    • DevOpsИконка стрелки
    • MobileИконка стрелки
    • ТестированиеИконка стрелки
    • Soft-skillsИконка стрелки
    • ДизайнИконка стрелки
    Иконка слояПерейти в каталог курсов
  • Бесплатно
    • Курсы
    • JavaScript Основы разработкиPython Основы PythonCSS CSS FlexboxКарта развитияВопросы для собеседований
    • База знанийИконка стрелки
    • Новостные рассылкиИконка стрелки
  • PurpleSchool — курсы программирования онлайн
    • AI для кодаНовое
    • Сообщество
    • PurpleПлюс
    • AI Собеседование
    • AI тренажёр
    • Проекты
    Главная
    Сообщество
    Что такое API: простое объяснение для начинающих

    Что такое API: простое объяснение для начинающих

    Аватар автора Что такое API: простое объяснение для начинающих

    Антон Ларичев

    Иконка календаря15 июля 2026
    apiосновыbackendhttprestдля начинающихjuniorИконка уровня junior
    Картинка поста Что такое API: простое объяснение для начинающих

    Введение

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

    API (Application Programming Interface) — это интерфейс взаимодействия между программами. Он позволяет одному приложению запрашивать данные или функциональность у другого по заранее определённым правилам.

    В этой статье разберём, что такое API, как он устроен и как начать его использовать в своих проектах.

    Аналогия из реальной жизни

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

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

    Как работает HTTP API

    Большинство современных API работают по протоколу HTTP. Клиент отправляет запрос на определённый адрес (endpoint), сервер обрабатывает его и возвращает ответ — обычно в формате JSON.

    Основные HTTP-методы:

    • GET — получить данные
    • POST — создать новую запись
    • PUT / PATCH — обновить запись
    • DELETE — удалить запись

    Пример запроса к публичному API для получения информации о пользователе:

    GET https://api.github.com/users/torvalds
    

    Ответ сервера (сокращённо):

    {
      "login": "torvalds",
      "name": "Linus Torvalds",
      "public_repos": 7,
      "followers": 230000
    }
    

    Первый запрос к API на JavaScript

    Сделаем запрос к бесплатному публичному API. Используем fetch — встроенный инструмент браузера и Node.js:

    // Получаем список постов с тестового API
    async function getPosts() {
      // Отправляем GET-запрос
      const response = await fetch('https://jsonplaceholder.typicode.com/posts');
    
      // Проверяем, что сервер ответил успехом
      if (!response.ok) {
        throw new Error(`Ошибка сервера: ${response.status}`);
      }
    
      // Парсим JSON из тела ответа
      const posts = await response.json();
    
      console.log(`Получено постов: ${posts.length}`);
      console.log('Первый пост:', posts[0]);
    }
    
    getPosts();
    

    Запрос с телом — создаём новый пост через POST:

    async function createPost(title, body) {
      const response = await fetch('https://jsonplaceholder.typicode.com/posts', {
        method: 'POST',
        // Указываем формат данных в заголовке
        headers: {
          'Content-Type': 'application/json',
        },
        // Преобразуем объект в строку JSON
        body: JSON.stringify({
          title: title,
          body: body,
          userId: 1,
        }),
      });
    
      const newPost = await response.json();
      console.log('Созданный пост:', newPost);
    }
    
    createPost('Мой первый пост', 'Текст поста через API');
    

    Авторизация в API

    Многие API требуют авторизацию — чтобы знать, кто делает запрос и какие права у этого пользователя. Самый распространённый способ — API-ключ или Bearer-токен в заголовке:

    async function getUserData(token) {
      const response = await fetch('https://api.example.com/me', {
        headers: {
          // Передаём токен в заголовке Authorization
          'Authorization': `Bearer ${token}`,
          'Content-Type': 'application/json',
        },
      });
    
      if (response.status === 401) {
        throw new Error('Токен недействителен или истёк');
      }
    
      return response.json();
    }
    

    API-ключ обычно получают при регистрации на платформе и хранят в переменных окружения — никогда не вшивают в код напрямую:

    // Правильно — из переменных окружения
    const API_KEY = process.env.MY_API_KEY;
    
    // Неправильно — секрет в коде попадёт в репозиторий
    const API_KEY = 'sk-abc123supersecret';
    

    Коды ответов HTTP

    Сервер всегда возвращает числовой код, который показывает результат запроса:

    Код Смысл
    200 Успех
    201 Ресурс создан
    400 Неверный запрос (ошибка клиента)
    401 Не авторизован
    403 Доступ запрещён
    404 Ресурс не найден
    429 Слишком много запросов
    500 Внутренняя ошибка сервера

    Всегда проверяйте код ответа перед работой с данными — не рассчитывайте, что запрос всегда успешен.

    Что такое REST API

    REST (Representational State Transfer) — набор архитектурных принципов для построения API. Большинство современных веб-API следуют именно REST-подходу.

    Главные принципы REST:

    • Ресурсы в URL — /users, /posts/42, /orders/5/items
    • Методы отражают действие — GET /users читает, POST /users создаёт
    • Без состояния — каждый запрос самодостаточен, сервер не помнит предыдущих
    • Единообразный интерфейс — предсказуемая структура URL и ответов

    Пример REST-маршрутов для ресурса articles:

    GET    /articles        — список всех статей
    GET    /articles/42     — статья с id=42
    POST   /articles        — создать статью
    PUT    /articles/42     — полностью обновить статью 42
    PATCH  /articles/42     — частично обновить статью 42
    DELETE /articles/42     — удалить статью 42
    

    Частые ошибки

    Не обрабатывать ошибки сети. fetch не выбрасывает исключение при HTTP-ошибках (400, 500) — только при проблемах сети. Всегда проверяйте response.ok.

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

    Игнорировать лимиты. Большинство API ограничивают количество запросов в единицу времени (rate limiting). При коде 429 делайте паузу перед повторной попыткой.

    Парсить JSON без проверки. Если сервер вернул не JSON (например, HTML страницу ошибки), response.json() выбросит исключение. Оборачивайте в try/catch.

    async function safeRequest(url) {
      try {
        const response = await fetch(url);
    
        if (!response.ok) {
          // Не пытаемся парсить тело при ошибке сервера
          throw new Error(`HTTP ошибка: ${response.status}`);
        }
    
        return await response.json();
      } catch (error) {
        // Ловим и сетевые ошибки, и ошибки парсинга
        console.error('Запрос не удался:', error.message);
        return null;
      }
    }
    

    Заключение

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

    Следующий шаг — попрактикуйтесь с публичными API без регистрации: JSONPlaceholder для CRUD-операций или Open-Meteo для погодных данных. Затем изучите документацию любого сервиса, которым пользуетесь — почти у каждого есть API.

    Иконка глаза5

    Комментарии

    0

    Постройте личный план изучения TypeScript с нуля - полный курс и паттерны проектирования до уровня Middle — бесплатно!

    TypeScript с нуля - полный курс и паттерны проектирования — часть карты развития Frontend, Backend, Mobile

    • step100+ шагов развития
    • lessons30 бесплатных лекций
    • lessons300 бонусных рублей на счет

    Бесплатные лекции

    Лучшие курсы по теме

    изображение курса

    React и Redux Toolkit

    Антон Ларичев
    AI-тренажерыAI-тренажеры
    Практика в студииПрактика в студии
    Гарантия
    Бонусы
    иконка звёздочки рейтинга4.8
    3 999 ₽ 6 990 ₽
    Подробнее
    изображение курса

    Zustand

    Антон Ларичев
    AI-тренажерыAI-тренажеры
    Практика в студииПрактика в студии
    Гарантия
    Бонусы
    иконка звёздочки рейтинга4.8
    3 999 ₽ 6 990 ₽
    Подробнее
    изображение курса

    Neovim

    Антон Ларичев
    Гарантия
    Бонусы
    иконка звёздочки рейтинга4.8
    3 999 ₽ 6 990 ₽
    Подробнее

    Похожие статьи

    Картинка поста GraphQL vs REST: что выбрать для API в 2026 году
    Иконка аватараАнтон
    Иконка календаря11 июля 2026
    graphqlrestapi+ 3middleИконка уровня middle

    GraphQL vs REST: что выбрать для API в 2026 году

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

    Иконка чипа0
    Иконка глаза174
    Иконка комментариев0
    Картинка поста Clean Architecture: чистая архитектура для веб-разработки
    Иконка аватараАнтон
    Иконка календаря02 июля 2026
    архитектураclean architecturetypescript+ 3middleИконка уровня middle

    Clean Architecture: чистая архитектура для веб-разработки

    Clean Architecture разделяет код на независимые слои: бизнес-логика не зависит от фреймворков, БД и внешних сервисов. Разбираем на примерах TypeScript.

    Иконка чипа0
    Иконка глаза245
    Иконка комментариев0
    Картинка поста HTTP методы GET POST PUT DELETE: разница и применение
    Иконка аватараАнтон
    Иконка календаря27 июня 2026
    HTTPRESTAPI+ 2juniorИконка уровня junior

    HTTP методы GET POST PUT DELETE: разница и применение

    HTTP методы GET, POST, PUT, DELETE — основа любого REST API. Разбираем, чем они отличаются, когда применять каждый и какие ошибки допускают новички.

    Иконка чипа0
    Иконка глаза463
    Иконка комментариев0
    Иконка чипа0