Новости

Заголовки квоты в каждом ответе: знайте свой лимит до вызова

Большинство API заставляют гадать, сколько вы уже использовали, пока что-нибудь не сломается. My Geocode поступает иначе: каждый ответ, на каждом эндпоинте и каждом совместимом хосте, содержит полный набор заголовков квоты, которые точно показывают, где вы находитесь.

X-Quota-Limit и X-Quota-Used дают общую картину для вызывающего ключа или сети. X-Quota-Free-Remaining показывает, сколько осталось от бесплатной дневной квоты, а X-Quota-Network-Used отражает, какую часть общей бесплатной квоты сети уже израсходовали все адреса и ключи в том же подключении. X-Credits-Remaining показывает остаток предоплаченного баланса для тех, кто вышел за пределы бесплатного уровня и не использует пакет Unlimited. X-Key-IPs-Used и X-Key-IPs-Limit отслеживают, с какого количества разных адресов использовался данный ключ, а X-Quota-Reset сообщает, когда дневные счётчики обнулятся.

Почему это важно, объяснить просто: скрипт, который видит свою квоту, может разумно под неё подстраиваться. Он может замедлиться до того, как его заблокируют, предупредить разработчика, когда баланс заканчивается, или автоматически переключиться с бесплатного ключа на платный, а не сначала упасть с ошибкой и реагировать уже потом. Для всего этого не нужно вызывать отдельный эндпоинт использования или вручную проверять личный кабинет. Информация приходит вместе с ответом, который вы и так запросили.

Это верно независимо от того, используете ли вы наши собственные эндпоинты или один из семнадцати совместимых хостов. Запрос в формате вызова Google Maps Platform, Bing Maps REST Services или ipstack всё равно возвращается с нашими заголовками квоты в дополнение к телу ответа в формате соответствующего провайдера. Смена провайдера не означает потерю этой прозрачности, она означает, что прозрачность появляется там, где её никогда не было.

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

Командам, которые создают что-то большее, чем разовый скрипт, мы советуем с самого начала записывать эти заголовки вместе с собственными журналами запросов. Незаметную тенденцию, когда X-Quota-Free-Remaining убывает быстрее ожидаемого, гораздо дешевле заметить на графике, чем в обращении в поддержку. Полное описание каждого заголовка и условий его появления приведено на /docs/rate-limits/, вместе с общими указаниями по аутентификации на /docs/authentication/.