Skip to content
  1. Компоненты
  2. MiniShop3
  3. Разработка
  4. Web API
  5. Ошибки

Ошибки ​

Форма ​

json
{
  "success": false,
  "message": "…",
  "code": 400,
  "errors": null,
  "error_code": "bad_request"
}
ПолеСмысл
codeHTTP-статус
errorsКарта полей или null
error_codeМашинный код
dataПриходит только там, где его передали

В ответе роутера ключи errors и error_code есть всегда, хотя errors часто null. До роутера — например, при пустом route — этих ключей нет.

В TypeScript описывайте ответ роутера как union: успех или ошибка с обязательным error_code.

Значения error_code ​

error_codeКогда
validation_failed422, карта полей
unauthorized401, нет покупателя там, где он нужен
token_required401, токен обязателен и гостевой не создан
token_expired401, срок токена вышел
token_invalid401, токен не найден или испорчен
not_found404
conflict409
rate_limited429
business_ruleПравило магазина, статус берёт вызывающий код
bad_request400
forbidden403. Контроллеры Web API этот код не возвращают
internal_error500 и 503

Других кодов ядро не отдаёт. Дополнение может прислать свой через Response::errorWithCode().

HTTP ​

СтатусКогда
400Битый запрос без карты полей: пустой route, пустой fields, пустой ключ позиции
401Токен просрочен, испорчен или обязателен там, где сервер не создал гостевой токен: token_expired, token_invalid, token_required, unauthorized
404Сущность не найдена
409Конфликт
422Карта полей: адрес, профиль, validation_failed
429Rate limit
500Внутренняя ошибка
503Сервис ms3 не поднят. error_code при этом internal_error

Статус 403 ставит только middleware прав Manager API.

Закрытое поле черновика ​

С 1.14.2-beta1 служебные колонки черновика заказа недоступны для записи с фронтенда. Запись в такую колонку возвращает лексикон ms3_err_field_protected: POST /order/add — 400 с business_rule, POST /order/set — 422 с validation_failed и ключом в errors. POST /order/remove на таком ключе отвечает 404 ms3_err_field_nf, а POST /order/submit отбрасывает его молча.

Перечень закрытых колонок и способ расширить его — в оформлении заказа.

Rate limit ​

Превышение квоты даёт 429 и error_code: rate_limited. Настройки, заголовки и хранилище счётчиков — CORS и rate limit.