Ты собрал «Змейку», и она работает прямо в браузере. Но пока результат игры хранится только на твоём компьютере: закрыл вкладку — и рекорд исчез. Чтобы сделать таблицу лучших игроков, нужно научить игру общаться с сервером. Именно для этого и существует API. Разберём, что это такое, как устроен запрос-ответ, зачем нужен JSON и что значит REST — на простых примерах из жизни и из твоего проекта.
Содержание
Что такое API простыми словами
API расшифровывается как Application Programming Interface, то есть «программный интерфейс приложения». Громкие слова, но смысл простой: API — это набор правил, по которым одна программа просит другую программу что-то сделать и получает ответ.
Представь, что ты сидишь в ресторане. Ты не ходишь на кухню и не готовишь еду сам — ты общаешься с официантом. Он принимает заказ, передаёт его поварам и приносит готовое блюдо. Меню — это список того, что ты можешь заказать. Официант — это API. Кухня — это сервер, где происходит основная работа. Ты не знаешь, как именно готовят стейк, но точно знаешь: если сказать официанту «бургер без лука», через некоторое время получишь именно это.
Так же работают приложения. Твоя игра не знает, как устроена база данных на сервере, но знает: если отправить правильный запрос, сервер сохранит рекорд или вернёт список лучших игроков.
Официант, меню и заказ: как работает запрос-ответ
Любое общение через API строится из двух частей: запрос и ответ.
Запрос — это то, что отправляет твоё приложение. В нём обычно есть три важные вещи:
- Адрес — куда обращаться. В вебе это URL, например
https://mygame.supabase.co/rest/v1/scores. - Метод — что ты хочешь сделать. Самые распространённые:
GET(получить данные),POST(создать новые),PUTилиPATCH(изменить),DELETE(удалить). - Тело запроса — данные, которые ты передаёшь. Например, имя игрока и набранные очки.
Ответ — это то, что приходит с сервера. В нём тоже есть три ключевые вещи:
- Статус-код — число, которое говорит, как прошла операция.
200или201означают «всё хорошо»,400— «ошибка в запросе»,404— «не найдено»,500— «проблема на сервере». - Заголовки — служебная информация, например в каком формате пришли данные.
- Тело ответа — сами данные, которые запрашивались, или сообщение об ошибке.
Продолжим аналогию. Ты говоришь официанту: «Принесите, пожалуйста, бургер без лука» — это запрос с методом «заказать». Официант уходит на кухню, а потом возвращается и говорит: «Ваш заказ готов» — это статус 200. Если бургеров закончились, он скажет: «Извините, бургера сейчас нет» — это статус 404 или ошибка из серии 400.
JSON — язык, на котором говорят приложения
Когда программы обмениваются данными, они используют строгие форматы, чтобы не было недопонимания. Один из самых популярных форматов — JSON, JavaScript Object Notation. Не пугайся названия: по сути, это способ записать данные в виде пары «ключ — значение».
Вот как может выглядеть рекорд игрока в JSON:
{
"player_name": "Анна",
"score": 42,
"date": "2026-07-02"
}
Здесь:
player_name— ключ, значение"Анна".score— ключ, значение42.date— ключ, значение"2026-07-02".
JSON понимают почти все языки программирования и сервисы. Он похож на обычный список или таблицу, только записанный так, чтобы компьютер мог быстро разобраться. В курсе ты будешь отправлять именно такие JSON-объекты в Supabase, когда захочешь сохранить результат игры.
REST: когда всё по правилам
REST — это не технология и не язык программирования. Это набор соглашений о том, как должны выглядеть запросы и ответы, чтобы разные системы понимали друг друга. REST расшифровывается как Representational State Transfer, но для практики достаточно запомнить: RESTful API — это API, которое использует стандартные HTTP-методы и чёткие URL.
В REST каждый адрес отвечает за свой тип данных. Например:
| URL | Метод | Что делает |
|---|---|---|
/scores |
GET |
Получить список всех рекордов |
/scores |
POST |
Добавить новый рекорд |
/scores/42 |
PATCH |
Изменить рекорд с номером 42 |
/scores/42 |
DELETE |
Удалить рекорд с номером 42 |
Главная идея REST — единообразие. Если ты знаешь, как устроен один REST API, легко разберёшься и с другим. Это как стандартное меню в сети кафе: форма одна, меняется только содержание.
Supabase, который используется в пятом модуле курса, предоставляет автоматический REST API поверх базы данных. Это значит, что ты можешь читать и записывать данные, просто отправляя HTTP-запросы на определённые адреса. Подробнее о формате запросов можно посмотреть в документации Supabase: supabase.com/docs.
Пример из «Змейки»: отправляем рекорд на сервер
Давай соединим всё вместе на примере. Представь, что игрок закончил партию и набрал 87 очков. Игра хочет сохранить этот результат в общей таблице рекордов.
Запрос от игры к серверу:
POST /rest/v1/scores
Host: mygame.supabase.co
Content-Type: application/json
{
"player_name": "Иван",
"score": 87
}
Здесь:
POST— метод, говорящий: «создай новую запись»./rest/v1/scores— адрес таблицы с рекордами.Content-Type: application/json— заголовок, объясняющий, что данные пришли в формате JSON.- Тело запроса — имя игрока и его результат.
Ответ сервера:
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 152,
"player_name": "Иван",
"score": 87,
"created_at": "2026-07-02T18:30:00Z"
}
Статус 201 Created говорит: «Рекорд успешно сохранён». В ответе сервер прислал ID новой записи и время создания. Теперь этот результат можно показать в таблице лучших игроков.
А если бы в запросе была ошибка — например, не указано имя игрока — сервер вернул бы статус 400 Bad Request и сообщение, что именно пошло не так. Это позволяет быстро понять, где исправить код или запрос.
Почему это важно именно тебе
Без API твоя игра остаётся одиночным островком на твоём устройстве. С API она может:
- хранить рекорды в общей таблице, чтобы игроки соревновались друг с другом;
- сохранять прогресс в облаке, чтобы не потеряться при смене браузера или компьютера;
- получать настройки, новые уровни или скины с сервера без обновления приложения;
- отправлять события для аналитики, чтобы понимать, как люди играют;
- встроить нейросеть — например, подключить бесплатный Groq API, чтобы ИИ отвечал игрокам прямо внутри игры.
В курсе ты не будешь писать запросы вручную — Claude Code сделает это за тебя по твоим промптам. Но понимание «что такое запрос», «где тело», «почему пришёл статус 500» поможет тебе ставить задачи точнее и быстрее находить причины ошибок.
Заключение
API — это способ общения между программами. Твоё приложение отправляет запрос, сервер обрабатывает его и возвращает ответ. Данные обычно передаются в формате JSON, а REST помогает стандартизировать адреса и методы, чтобы разные системы понимали друг друга.
В контексте «Змейки» API позволяет отправить рекорд на сервер, получить таблицу лучших игроков и сделать игру по-настоящему сетевой. Это не магия, а всего лишь договорённость: правильный запрос — правильный ответ. Когда ты это поймёшь, работа с Supabase и любыми другими сервисами станет гораздо прозрачнее.
Что такое REST API
REST API — самый распространённый «диалект» API в вебе. Его идея проста: каждая вещь на сервере (игрок, рекорд, товар) имеет свой адрес-URL, а действия над ней выражаются стандартными методами HTTP. GET /scores — получить список рекордов, POST /scores — добавить новый, DELETE /scores/42 — удалить рекорд с номером 42. Ответы приходят в формате JSON.
Красота REST в предсказуемости: увидев адрес и метод, разработчик (и ИИ-ассистент) сразу понимает, что произойдёт. Когда просишь Claude «сделай API для таблицы рекордов», он почти наверняка сделает именно REST — это стандарт по умолчанию.
Что такое API-ключ и где его хранить
API-ключ — это «пропуск», по которому сервер понимает, кто к нему обращается. Без ключа сервис либо не ответит вовсе, либо ответит с жёсткими ограничениями. Ключ выдаётся в личном кабинете сервиса и выглядит как длинная случайная строка.
Относись к ключу как к паролю. Его нельзя вставлять в код, который попадёт в публичный репозиторий или в браузер пользователя. Ключи хранят в специальном файле .env, который исключён из публикации. Подробно о том, как устроено безопасное хранение ключей и что делать, если ключ всё-таки утёк, — в статье «Хранение секретов и токенов: .env и безопасность».
Читай дальше
Все статьиНе просто статьи — тебя доведут до результата
В практикуме за 1999 ₽ рядом живая команда практикующих разработчиков и маркетологов: ведём по шагам до твоего работающего приложения. Не «ролики и сам разбирайся» — помогаем на каждом затыке.
Перейти к практикуму