← Аналитика / analytics / graphql-api
Ответы с ошибками
GraphQL Analytics API представляет собой RESTful API, основанный на запросах HTTPS и ответах в формате JSON, и возвращает знакомые коды состояния HTTP (например, 404, 500, 504). Однако в отличие от привычного подхода REST 200 ответ может содержать ошибку, соответствующую Спецификация GraphQL ↗.
Все ответы содержат errors массив, который будет null , если ошибок нет, и включает не менее одного объекта ошибки, если ошибка произошла. Объекты ошибок, не равные null, содержат следующие поля:
message: строка с описанием ошибки.path: узлы, связанные с ошибкой, начиная с корневого. Обратите внимание, что число в массиве path, например,0или1, указывает, к какой зоне относится ошибка;0означает первую зону в списке (или единственную зону, если запрашивается только одна).timestamp: Дата и время в UTC, когда произошла ошибка.
Пример
{
"data": null,
"errors": [
{
"message": "cannot request data older than 2678400s",
"path": ["viewer", "zones", "0", "firewallEventsAdaptiveGroups"],
"extensions": {
"timestamp": "2019-12-09T21:27:19.195060142Z"
}
}
]
}Распространённые типы ошибок
Недоступность службы
Примеры сообщений об ошибках:
unable to execute query, please try again later(HTTP503)too many queries in progress, please try again later(HTTP503)
Эти сообщения указывают на временную проблему на стороне сервера. Первое обычно означает, что вышестоящая база данных недоступна или вернула ошибку. Второе означает, что сервер достиг максимального числа одновременных запросов.
Повторите запрос через небольшую паузу. Если ошибка не исчезает, проверьте страница статуса Cloudflare ↗ для текущих инцидентов.
Превышены лимиты доступности набора данных
Примеры сообщений об ошибках:
cannot request data older than...(HTTP400)number of fields can't be more than...(HTTP400)limit must be positive number and not greater than...(HTTP400)query time range is too large...(HTTP400)
Эти сообщения означают, что запрос превышает лимиты, допустимые для конкретного набора данных при текущем тарифный план ↗, и стоит задуматься об обновлении. См. Лимиты узлов для получения подробностей.
Проблемы синтаксического анализа
Примеры сообщений об ошибках:
error parsing args...(HTTP400)scalar fields must have no selections(HTTP400)object field must have selections(HTTP400)unknown field...(HTTP400)query contains error, please review it and retry(HTTP400)
Эти сообщения означают, что запрос не может быть обработан из-за некорректного формата. Проверьте синтаксис запроса по Схема GraphQL и исправьте недопустимые поля или структуру.
Превышение лимитов частоты запросов
Примеры сообщений об ошибках:
rate limiter budget depleted, try again after 5 minutes(HTTP429)in combination, your request queries too many nodes, zones and accounts(HTTP429)query consumed excessive resources, please try running smaller queries which consume fewer resources(HTTP429)
Эти сообщения означают, что запрос превысил лимиты скорости или ресурсов. Уменьшите сложность запроса, количество зон или аккаунтов в запросе либо подождите перед повторной попыткой. См. Лимиты раздел, где приведены дополнительные сведения об ограничениях скорости запросов.
Ошибки аутентификации и авторизации
Примеры сообщений об ошибках:
Unauthorized(HTTP401)not authorized for that account(HTTP403)zones [...] are not authorized(HTTP403)does not have access to the path...(HTTP403)
Одна Unauthorized ответ означает, что API-токен или bearer-токен отсутствует, истёк или недействителен. Убедитесь, что вы передаёте действительный токен в Authorization заголовок.
A 403 ответ означает, что у токена нет необходимых прав для запрошенного аккаунта или зоны. Убедитесь, что у токена есть Analytics: Read разрешение для соответствующих ресурсов. См. Токены раздел, чтобы узнать больше.
Внутренние ошибки сервера
Пример сообщения об ошибке:
Internal server error(HTTP500)
Это общая ошибка, указывающая на непредвиденный сбой. Если она повторяется, обратитесь Служба поддержки Cloudflare ↗ с полным запросом и ответом, включая Ray-ID заголовок из ответа HTTP.