Приклад відображення помилки:


Для покращення роботи Майданчиків присутнє поле userMessage, яке буде мстити людиночиаємий опис помилки.

errorCode

При виникненні помилки на отриманий запит формується errorCode з наступною структурою:

  1. <SERVICE-CODE>-<ERROR-TYPE>-<ERROR-TYPE-NUM>-<ENDPOINT-NUM>-<VERSION>

Приклад: PROC-DVE-07-001-0

  1. <SERVICE-CODE>-<ERROR-TYPE>-<ERROR-TYPE-NUM>

Приклад: PROC-DVE-07

  1. <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

Основні моменти:

  1. Є можливість задати userMessage для верхнього рівня помилки і додавати окремі userMessages помилок для кожного сервісу, типу помилки, endPoint окремо

Наприклад:

для помилкок задали тексти:

eroorCodeuserMessage
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 FoundAPI-04
405 Method Not AllowedAPI-05
400 Bad RequestDVE-01Invalid request syntax.
415 Unsupported Media TypeDVE-04Media format is not supported.
422 Unprocessable EntityDVE-05Invalid data.
422 Unprocessable EntityDVE-06Invalid data to create ObjectId.
422 Unprocessable EntityDVE-07Invalid data.
422 Unprocessable EntityDVE-08Invalid data.
422 Unprocessable EntityDVE-09Invalid data.
422 Unprocessable EntityDVE-10Invalid json data.
422Unprocessable EntityDVE-11Invalid data for ISO 8601 date format.
403Forbidden FSP-04Wrong operation for current procedure status.
403Forbidden FSP-05Wrong operation for current procedure state.
403Forbidden FSP-06Period ended or wrong state.
424Failed Dependency ISE-05
424Failed Dependency ISE-06
503Service UnavailableISE-07Object with current id exists.
404Not FoundNFO-04Wrong object id. {}
404Not FoundNFO-05Unsupported document type. {}
404Not FoundNFO-06Wrong classifiers. {}
404Not FoundNFO-07Wrong selling method. {}



  • No labels