Skip to content

Коды ошибок (V2 и ACP)

В V2 и ACP все ошибки возвращаются в формате:

json
{
  "time": 1700000000,
  "error": {
    "code": "string",
    "http_status": 400,
    "message": "string",
    "details": { "key": "value" }
  }
}
  • code: машинночитаемый код.
  • http_status: HTTP-статус ответа.
  • message: краткое описание.
  • details: опциональные детали (валидатор, поля и т.п.).

Источники:

  • интерфейс ошибок API: interfaces/api/apierrors/app_error.go
  • маппинг доменных ошибок: interfaces/api/apierrors/mapper.go
  • доменные коды: domain/errors/errors.go

Стандартные ошибки API (apierrors)

codehttp_statusmessage
auth.unauthorized401Unauthorized
auth.invalid_headers400Invalid headers
auth.invalid_token401Invalid token
auth.client_version_too_low400Client version too low
auth.banned403User is banned
auth.forbidden403Forbidden
validation.invalid_input422Invalid input
validation.conflict409Conflict
system.internal500Internal server error
system.try_again_later503Please try again later
db.select_failed500Database select failed
db.update_failed500Database update failed

Дополнительно при маппинге доменных ошибок:

codehttp_statusmessageисточник
resource.not_found404Not foundmapper
system.unsupported501Unsupportedmapper

Доменные коды (domain/errors)

Эти коды маппятся в AppError через mapper.go:

domain codeНазначениеМаппинг в API
unauthorizedнет авторизацииauth.unauthorized (401)
forbiddenзапрет доступаauth.forbidden (403)
not_foundресурс не найденresource.not_found (404)
invalidневерные данныеvalidation.invalid_input (422)
conflictконфликт состоянияvalidation.conflict (409)
unsupportedне поддерживаетсяsystem.unsupported (501)
internalвнутренняя ошибкаsystem.internal (500)

Примечание: точный HTTP‑статус выбирается маппером, исходя из доменного кода.