...
- Інтеграція тригериться тільки при створенні award
- Запит асинхронний
- Дані записуються тільки якщо валідні
- Запис — атомарний (все або нічого)
- Можливі декілька КБВ
- Retry (3 рази) тільки для:
- 500
- 502
- Slack alert тільки для:
- 4xx + 429
- Fallback текст при недоступності ЄДР
- У разі отримання першої відповіді від ЄДР з HTTP статусом 402 або 429 ЦБД має призупинити направлення всіх наступних запитів до сервісу ЄДР до моменту ручного або автоматичного відновлення інтеграції після внесення коштів / відновлення ліміту.
- Система повинна диференційовано обробляти помилки ЄДР:
- технічні помилки (500, 502) → retry (Якщо не вдається отримати відповідь виводимо в поле reason текст "Не вдалось отримати інформацію з сервісу")
- авторизаційні (401) → refresh token
- бізнес/доступ (402, 403, 406, 429) → зупинка або alert
- помилки даних (400, 404) → без retry, з логуванням
- помилки даних (404) → без retry (Якщо не вдається отримати відповідь виводимо в поле reason текст "Суб'єкт не знайдено в ЄДР")
Система не повинна виконувати безкінечні повторні запити.
...
Код | Текст | Пояснення |
1 | Could not authenticate you або Authentication credentials were not provided | Помилка аутентифікації. |
2 | Invalid or expired token | Недіючий або некоректний токен. |
3 | Your account is not permitted to access this resource | Відповідь надається разом із HTTP статусом 403. Користувач, з використанням токену якого було виконано аутентифікацію, не має достатніх прав для виконання запиту. |
4 | Sorry, that page does not exist | Відповідь надається разом із HTTP статусом 404. Сторінка до якої виконується запит не знайдена. |
5 | Paiment required | Відповідь надається разом із HTTP статусом 402. Недостатньо коштів для виконання платного запиту. |
6 | Parse Error або `search_date` has wrong format | Відповідь надається разом із HTTP статусом 400. Не правильний формат одного або декількох параметрів запиту. |
9 | Rate limit exceeded | Відповідь надається разом із HTTP статусом 429. Вичерпано кількість запитів, дозволених виконати протягом проміжку часу. |
10 | `code` or `passport` parameter must be provided. | У запиті не надано параметрів необхідних для виконання пошуку. |
11 | `passport` parameter has wrong value. | Один або більше параметрів запиту має невірний формат. |
20 | Internal error | Відповідь надається разом із HTTP статусом 500. |
Правила обробки помилок
| HTTP code | Retry | Зупинка інтеграції | Slack | Дія |
|---|---|---|---|---|
| 400 | Ні | Ні | Так | баг у запиті |
| 401 | Так (1 раз) | НІ | Ні | refresh token |
| 402 | Ні | Так | Так | чекати оплату |
| 403 | Ні | Можливо | Так | перевірити доступ |
| 404 | Ні | Можливо | Ні | немає суб'єкта |
| 406 | Ні | Можливо | Так | формат |
| 429 | НІ | Так | Так | ліміт |
| 500 | Так (3 рази) | Ні | Ні | тимчасова помилка |
| 502 | Так (3 рази) | Ні | Ні | сервіс недоступний |
Сценарії роботи інтеграції з ЄДР
...