Индекс
Код
Канонические коды ошибок для API gRPC.
Иногда могут применяться несколько кодов ошибок. Службы должны возвращать наиболее конкретный код ошибки, который применим. Например, отдайте предпочтение OUT_OF_RANGE
вместо FAILED_PRECONDITION
, если применимы оба кода. Аналогичным образом отдайте предпочтение NOT_FOUND
или ALREADY_EXISTS
вместо FAILED_PRECONDITION
.
Перечисления | |
---|---|
OK | Это не ошибка; вернулся с успехом. HTTP-сопоставление: 200 ОК |
CANCELLED | Операция была отменена, как правило, вызывающей стороной. HTTP-сопоставление: закрытый запрос клиента 499 |
UNKNOWN | Неизвестная ошибка. Например, эта ошибка может быть возвращена, когда значение HTTP-сопоставление: 500 внутренняя ошибка сервера |
INVALID_ARGUMENT | Клиент указал недопустимый аргумент. Обратите внимание, что это отличается от HTTP-сопоставление: 400 неверных запросов |
DEADLINE_EXCEEDED | Срок истек до завершения операции. Для операций, изменяющих состояние системы, эта ошибка может возвращаться, даже если операция завершилась успешно. Например, успешный ответ от сервера мог быть отложен на время, достаточное для истечения крайнего срока. HTTP-сопоставление: тайм-аут шлюза 504 |
NOT_FOUND | Некоторый запрошенный объект (например, файл или каталог) не найден. Примечание для разработчиков серверов: если запрос отклонен для всего класса пользователей, например, при постепенном развертывании функции или недокументированном списке разрешенных, можно использовать HTTP-сопоставление: 404 не найден |
ALREADY_EXISTS | Объект, который клиент пытался создать (например, файл или каталог), уже существует. HTTP-сопоставление: конфликт 409 |
PERMISSION_DENIED | У вызывающего объекта нет разрешения на выполнение указанной операции. HTTP-сопоставление: 403 запрещено |
UNAUTHENTICATED | В запросе нет действительных учетных данных аутентификации для операции. HTTP-сопоставление: 401 Неавторизованный |
RESOURCE_EXHAUSTED | Какой-то ресурс исчерпан, возможно, квота на пользователя или, возможно, во всей файловой системе недостаточно места. HTTP-сопоставление: 429 слишком много запросов |
FAILED_PRECONDITION | Операция отклонена, поскольку система не находится в состоянии, необходимом для выполнения операции. Например, удаляемый каталог не пуст, операция rmdir применяется к некаталогу и т. д. Разработчики службы могут использовать следующие рекомендации для выбора между HTTP-сопоставление: 400 неверных запросов |
ABORTED | Операция была прервана, как правило, из-за проблемы параллелизма, например сбоя проверки секвенсора или прерывания транзакции. См. приведенные выше рекомендации по выбору между HTTP-сопоставление: конфликт 409 |
OUT_OF_RANGE | Была предпринята попытка выполнить операцию за пределами допустимого диапазона. Например, поиск или чтение конца файла. В отличие от Между HTTP-сопоставление: 400 неверных запросов |
UNIMPLEMENTED | Операция не реализована или не поддерживается/включена в этом сервисе. HTTP-сопоставление: 501 не реализовано |
INTERNAL | Внутренние ошибки. Это означает, что некоторые инварианты, ожидаемые базовой системой, были нарушены. Этот код ошибки зарезервирован для серьезных ошибок. HTTP-сопоставление: 500 внутренняя ошибка сервера |
UNAVAILABLE | В настоящее время услуга недоступна. Скорее всего, это временное состояние, которое можно исправить, повторив попытку с отсрочкой. Обратите внимание, что не всегда безопасно повторять неидемпотентные операции. См. приведенные выше рекомендации по выбору между HTTP-сопоставление: служба 503 недоступна |
DATA_LOSS | Невосстановимая потеря или повреждение данных. HTTP-сопоставление: 500 внутренняя ошибка сервера |
Статус
Тип Status
определяет логическую модель ошибок, подходящую для различных сред программирования, включая API REST и API RPC. Он используется gRPC . Каждое сообщение Status
содержит три части данных: код ошибки, сообщение об ошибке и сведения об ошибке.
Подробнее об этой модели ошибок и о том, как с ней работать, можно узнать в API Design Guide .
Поля | |
---|---|
code | Код состояния, который должен быть значением перечисления |
message | Сообщение об ошибке для разработчика, которое должно быть на английском языке. Любое сообщение об ошибке, обращенное к пользователю, должно быть локализовано и отправлено в поле |
details[] | Список сообщений, содержащих сведения об ошибке. Существует общий набор типов сообщений для использования API. |