Приклад відображення помилки:
Для покращення роботи Майданчиків присутнє поле userMessage, яке буде мстити людиночиаємий опис помилки.
errorCode
При виникненні помилки на отриманий запит формується errorCode з наступною структурою:
<SERVICE-CODE>-<ERROR-TYPE>-<ERROR-TYPE-NUM>-<ENDPOINT-NUM>-<VERSION>
Приклад: PROC-DVE-07-001-0
<SERVICE-CODE>-<ERROR-TYPE>-<ERROR-TYPE-NUM>
Приклад: PROC-DVE-07
<ERROR-TYPE>-<ERROR-TYPE-NUM>
Приклад: DVE-07
де,
<SERVICE-CODE>
- назва сервісу, на якому виникла помилка<ERROR-TYPE>
- тип помилки із переліку:DVE - Data Validation Error
FSP - Forbidden State Procedure
NFO - Not Found Object
ISE - Internal Server Error
API - AIOHTTP Base Errors
<ERROR-TYPE-NUM>
- номер типу помилки. Приклад:- 07 - валідаційна помилка
- 10 - синтаксична помилка
<ENDPOINT-NUM>
- унікальний id endPoint в рамках сервісу<VERSION>
- версія помилки в рамках одного endPoint. Є можливість додати декілька версій однієї помилки.
userMessage
Повідомлення, що має транслюватися користувачу формується в залежності від errorCode
Налаштування відображення userMessage відбувається у довіднику errorCode
Основні моменти:
- Є можливість задати userMessage для верхнього рівня помилки і додавати окремі userMessages помилок для кожного сервісу, типу помилки, endPoint окремо
Наприклад:
для помилкок задали тексти:
eroorCode | userMessage |
---|---|
DVE-07 | "uk_UA": "Помилка валідації полей", "en_US": "Validation error" |
PROC-DVE-07 | "uk_UA": "Помилка валідації полей Процедури", "en_US": "Procedure validation error" |
PROC-DVE-07-001-0 | "uk_UA": "Помилка валідації полів при створенні процедури", "en_US": "Validation error when creating procedure" |
PROC-DVE-07-005-0 | "uk_UA": "Помилка валідації полів при редагуванні процедури", "en_US": "Validation error when editing procedure" |
userMessage від помилки DVE-07 буде повертатися, якщо користувач отримує будь-яку помилку, яка містить DVE-07, окрім помилок: PROC-DVE-07, PROC-DVE-07-001-0 та PROC-DVE-07-005-0, бо для них є окремі userMessage.
Тобто, якщо користувач отримує помилку, для якої заповнений userMessage в довіднику, то система поверне його. Якщо окремого опису для отриманої користувачей помилки не буде, то система поверне userMessage помилки вище (якщо для неї є опис).
Не обов'язково деталізовувати опис userMessage до кожної помилки. Можна обмежитись описом верхньорівневих помилок. Тоді цей опис буде повертатися, коли користувач отримує конкретну помилку.
Структура формування помилок тут
Приклади:
status_code | error_type | error_code | additional_info |
---|---|---|---|
404 | Not Found | API-04 | |
405 | Method Not Allowed | API-05 | |
400 | Bad Request | DVE-01 | Invalid request syntax. |
415 | Unsupported Media Type | DVE-04 | Media format is not supported. |
422 | Unprocessable Entity | DVE-05 | Invalid data. |
422 | Unprocessable Entity | DVE-06 | Invalid data to create ObjectId. |
422 | Unprocessable Entity | DVE-07 | Invalid data. |
422 | Unprocessable Entity | DVE-08 | Invalid data. |
422 | Unprocessable Entity | DVE-09 | Invalid data. |
422 | Unprocessable Entity | DVE-10 | Invalid json data. |
422 | Unprocessable Entity | DVE-11 | Invalid data for ISO 8601 date format. |
403 | Forbidden | FSP-04 | Wrong operation for current procedure status. |
403 | Forbidden | FSP-05 | Wrong operation for current procedure state. |
403 | Forbidden | FSP-06 | Period ended or wrong state. |
424 | Failed Dependency | ISE-05 | |
424 | Failed Dependency | ISE-06 | |
503 | Service Unavailable | ISE-07 | Object with current id exists. |
404 | Not Found | NFO-04 | Wrong object id. {} |
404 | Not Found | NFO-05 | Unsupported document type. {} |
404 | Not Found | NFO-06 | Wrong classifiers. {} |
404 | Not Found | NFO-07 | Wrong selling method. {} |