Главное
Запрос с ошибкой теперь возвращает ваш 400, а не наш 503. Single, Proxy Finder и Browser указывают конкретное проблемное поле, не списывают за это кредиты и больше не провоцируют заведомо бессмысленный retry. Во вкладке Budget теперь отдельно отображаются купленные кредиты и кредиты, израсходованные вашими запросами, а смена пароля завершает все остальные сессии в Dashboard. Первые два изменения описаны в changelog.
Что нового
Ошибочный запрос сообщает причину
Если передать в Single, Proxy Finder или Browser тело запроса, которое невозможно обработать (отсутствует url, timeout_ms не является числом), вы получите HTTP 400. Поле error начинается с Invalid request: и перечисляет до пяти проблемных полей с указанием причины. Это результат с кодом client_error, и он стоит 0 кредитов.
До этой недели такие запросы возвращали стандартный 503, что выглядело как сбой на нашей стороне и заставляло цикл повторных попыток отправлять запрос снова. Если ваш клиент считает 400 финальной ошибкой (как в примере из нашего error reference), опечатка остановит выполнение уже на первом вызове:
import requests
r = requests.post(
"https://api.foura.ai/api/single",
headers={"X-API-Key": "pk_live_..."},
json={"url": "https://example.com/data", "timeout_ms": "fast"},
)
if r.status_code == 400:
# "Invalid request: timeout_ms: ..." means fix the call, don't retry it
raise ValueError(r.json()["error"])
Здесь Auto работает как раньше. Поле, которое он не может принять, по-прежнему возвращает HTTP 200 с status: 400 и причиной в error, до любой попытки и бесплатно.
Списанные и потраченные кредиты рядом
В разделе Budget во вкладке Metrics теперь на первом месте стоят списанные кредиты, которые расходуются только на успешные запросы, а прямо под ними отображаются все потраченные в формате "из N потраченных". Стоимость одного запроса также указана в списанных кредитах. В разбивке по ключу, домену или IP клиента для каждого значения есть отдельный столбец с сортировкой.
Потраченные кредиты учитывают любой исход, поскольку для неуспешного запроса все равно требуется выходной узел или браузер, чтобы зафиксировать сбой. Таким образом, разница между двумя столбцами показывает по каждому домену объем ресурсов, ушедших на неудачные запросы.
Выход из системы завершает сеанс
Смените пароль в Settings, сбросьте его со страницы входа или нажмите Sign Out Others, и сеанс завершится во всех остальных браузерах, где выполнен вход в ваш аккаунт. Браузер, в котором вы выполнили действие, остается активным. Выход из системы теперь также завершает сессию на нашей стороне, а не только в вашем браузере.
Страница сброса пароля теперь запрашивает тот же шаг проверки, что и вход со страницей регистрации. Она не отображается, если в ней нет необходимости.
Proxy Finder и редиректы шлюзов
Некоторые выходные узлы находятся за корпоративным сетевым шлюзом. В прошлом дайджесте рассматривался вариант, когда шлюз возвращает собственную страницу входа. Теперь Proxy Finder распознает и случаи с редиректом на сервис авторизации, считает это неудачной попыткой и переходит к другому узлу вместо возврата этого редиректа в качестве ответа целевого сайта.
Небольшие исправления в Dashboard
- Если у выбранного владельца (Everything, Personal или организация) еще нет ключей API, Overview и Metrics сообщают об этом под селектором периода и предлагают создать ключ.
- Все числа на Overview расположены прямо под своими метками и оформлены одним размером, поэтому ряд панелей читается ровно при любой ширине экрана. Панель попыток Auto отображается всегда и показывает ноль для периода без вызовов Auto.
- На странице подписки скрыт переключатель Monthly/Annual для тарифов, доступных только в одном варианте.
- Если для вас настроен пробный период, выбор другого тарифа на странице обновления теперь запрашивает карту и запускает полный расчетный период в тот же день. Пробный период завершается сразу после успешной оплаты.
Что под капотом
Запросы к api.foura.ai и eu.api.foura.ai теперь обрабатываются несколькими серверами одновременно вместо одного. Если один из них перестает отвечать, новые вызовы перенаправляются на остальные в течение пары минут.
Auto стал легче. Выбор сохраненной сессии для запроса теперь требует четырех внутренних обращений вместо десятков, а каждый сервер выделяет под Auto больше ресурсов, чем раньше, поэтому в пиковые часы вызовы Auto проводят меньше времени в очереди.
Каждый движок переведен на актуальную версию среды выполнения с долгосрочной поддержкой (LTS) вместе с октябрьским обновлением безопасности. Мы также обновили библиотеки в API, Dashboard, документации и блоге. В Single и Proxy Finder новая среда выполнения изолирует сетевые выходы: если один из них перестает читать данные посреди запроса, это не замедляет остальные запросы на том же сервере. Перед перезапуском для обновления версии сервер прекращает прием новых вызовов и возвращается в строй только после успешного прохождения проверок.
Повторные попытки нужны для сайтов, заставляющих ждать, а не для опечаток в вашем собственном запросе.