BPMS Feign клієнт
Ієрархія клієнтів
Feign клієнти використовуются для простого доступу до ендпоінтів камунди - Camunda REST API
-
BaseFeignClient
- базовий клієнт з базовими налаштуваннями на error decoder -
TaskRestClient
- клієнт який надає доступ до ресурсу/api/task
(задачі користувача) -
ProcessDefinitionRestClient
- клієнт який надає доступ до ресурсу/api/process-definition
(бізнес-процеси) -
ProcessInstanceRestClient
- клієнт який надає доступ до ресурсу/api/process-instance
(екземпляри бізнес-процесу)
Декодинг помилок
Декодинг помилок в BPMS Feign клієнті виконуєься на базі аннотацій
Ієрархія помилок
-
ValidationException
,SystemException
іRestSystemException
- базові виключення з ddm-actuator-error-handling -
RestSystemException
містить httpStatus для exception handling на рівні користувача клієнту
-
400 →
BadRequestException
-
401 →
AuthenticationException
-
403 →
AuthorizationException
-
404 →
NotFoundException
-
process-definition 404 →
ProcessDefinitionNotFoundException
-
process-instance 404 →
ProcessInstanceNotFoundException
-
process-instance/variable 404 →
ProcessInstanceVariableNotFoundException
-
task 404 →
TaskNotFoundException
-
-
422 →
ClientValidationException
-
500 →
InternalServerErrorException
-
502, 503, 504 →
CamundaCommunicationException
Реалізація декодингу помилок
-
BpmsResponseDecoder
- перевантажує методdecode
для того щоб на 404 відповідь повертати розшифровану відповідь замість пустої -
BpmsAnnotationErrorDecoder
- містить в собі список всіх клієнтів для того, щоб згенерувати списокAnnotationErrorDecoder
та зформувати з них ланцюг зErrorDecoder
за замовчуванням в кінці (який повертаєFeignException
). Таким чином якщо у нас 2 клієнтиClient1
,Client2
таClient3
то збудований ланцюг буде такий:-
Сlient3Decoder
зСlient2Decoder
як декодер помилок за замовчуванням -
Сlient2Decoder
зСlient1Decoder
як декодер помилок за замовчуванням -
Сlient1Decoder
зDefaultErrorDecoder
як декодер помилок за замовчуванням
-