Четыре реальности чужих API
Ключи, лимиты, вебхуки и CORS
Чужой API — это не «бесплатная розетка». Это платный сервис, который узнаёт вас по секретному ключу, считает деньги за каждый вызов, сам уведомляет о событиях — и не пускает напрямую из браузера.
| Тема | Суть | Что важно заказчику |
|---|---|---|
| API-ключ | Секретный «пропуск», по которому чужой сервис узнаёт и тарифицирует вас. | Нельзя светить в коде, в браузере, в git. Утечка — чужой ходит за ваш счёт. |
| Лимиты и стоимость (rate limit) |
Сервис ограничивает, сколько запросов можно сделать за период. Превышение → ответ 429 Too Many Requests.1 |
Каждый вызов AI или карт может стоить реальных денег. Следить за лимитами — обязательно. |
| Вебхук (webhook) |
«API наоборот»: вы даёте сервису свой адрес-эндпоинт, и он сам шлёт запрос, когда происходит событие.2 | Не нужно постоянно спрашивать «ну что, готово?» — сервис сам дёргает ваш адрес, когда, например, оплата прошла. |
| CORS (Cross-Origin Resource Sharing) |
Правило безопасности браузера: запрос со страницы на чужой домен блокируется, если тот явно не разрешил.3 | Классическая ошибка «CORS blocked / No 'Access-Control-Allow-Origin'». Решение — ходить к чужому API не из браузера, а через свой сервер. |
Подробнее о каждой теме
API-ключ — это длинная случайная строка, которую сервис выдаёт при регистрации. По ней он понимает, кто делает запрос и сколько с кого списывать. Потерял контроль над ключом — кто-то другой пользуется сервисом за ваши деньги. Поэтому ключ хранят только на сервере, никогда не кладут в JavaScript-код, который идёт в браузер, и никогда не коммитят в git-репозиторий. Подробно об этом — блок 5 про секреты и безопасность.
Лимиты и стоимость. Чужие API почти всегда ограничивают нагрузку: например, не больше 60 запросов в минуту (rate limit — лимит запросов за период). Превышение возвращает HTTP-статус 429 Too Many Requests — браузер или сервер получает отказ вместо данных.1 Помимо лимита — цена: AI-сервисы тарифицируют по токенам (единица текста ~4 символа), картографические — по запросам. Заказчику важно понимать: каждый вызов может стоить денег, и неоптимальный код (например, вызов AI на каждое нажатие клавиши) может принести большой счёт.
Вебхук — это «звонок обратно». Вместо того чтобы ваше приложение каждую секунду спрашивало платёжный сервис «оплата прошла?», вы заранее даёте ему URL своего сервера — эндпоинт (адрес-«окошко»). Когда событие случается (оплата прошла, посылка отправлена, пользователь подписался), сервис сам шлёт HTTP POST-запрос на этот адрес.2 Ваш сервер получает уведомление и реагирует — например, открывает доступ к курсу. Это экономит запросы и даёт мгновенную реакцию.
CORS расшифровывается как Cross-Origin Resource Sharing — «совместное использование ресурсов между разными источниками». Браузер по умолчанию не позволяет JavaScript на одной странице делать запросы к другому домену — это защита от кражи данных.3 Если чужой API не добавил специальный заголовок Access-Control-Allow-Origin с разрешением, браузер блокирует запрос и выводит ошибку «CORS blocked». Стандартное решение: ходить к чужому API не из браузера, а с собственного сервера. Сервер ограничения CORS не имеет, и там же безопасно лежит ключ — двойная польза. Это прямая связь с темой блока 1 о том, где выполняется код.
📌 Запомните одной фразой: чужой API — это чужой платный сервис: по ключу узнают и считают деньги, по лимиту тормозят (429), вебхуком уведомляют, а из браузера напрямую не пускают (CORS) — ходи через свой сервер.