раздел 02
Аутентификация и лимиты
Большинство API не отдают данные кому попало. Сначала сервис должен понять, кто вы, - это и есть аутентификация. Способы разные, но идея одна: вы прикладываете к запросу что-то, что вас опознаёт.
API-ключ
Самый простой вариант. Сервис выдаёт вам длинную строку - ключ, вроде sk_live_8fJ2k.... Вы прикладываете его к каждому запросу, и сервис понимает, что это вы. Ключ часто передают в заголовке.
Bearer-токен
Сейчас это самый частый способ. Токен (тот же ключ или выданный отдельно) передают в заголовке Authorization со словом Bearer:
GET /v1/orders HTTP/1.1
Host: api.example.com
Authorization: Bearer ВАШ_ТОКЕН
Слово Bearer переводится как «предъявитель»: кто предъявил токен, того и пускают. Поэтому токен и нужно беречь, как ключ от квартиры.
OAuth (кратко)
Когда нужно действовать от имени пользователя (например, прочитать его письма или фото), используют OAuth. Грубо: пользователь на сайте сервиса нажимает «Разрешить», и сервис выдаёт вашему приложению временный токен на конкретные действия. Пароль пользователя вы при этом не видите. Это та самая кнопка «Войти через Google».
Лимиты запросов (rate limits)
Сервисы ограничивают, сколько запросов вы можете слать за период - например, 100 запросов в минуту. Это защита от перегрузки. Если вы превысили лимит, в ответ придёт код 429 (Too Many Requests). Решение - слать запросы реже или делать паузу и пробовать снова.
Безопасность ключа
Ключ или токен - это пароль. Кто его получил, тот ходит в сервис от вашего имени и тратит ваши лимиты и деньги.
Правильная схема такая: ключ лежит в .env, код читает его оттуда по имени переменной, а в репозиторий попадает только .env.example без реальных значений - как образец.