in progress
Addresses
Jira | ||||||
---|---|---|---|---|---|---|
|
...
The error response content is extremely important for issues troubleshooting.
Depending on requirements the error message content may include
- error message
- error code (could be customer specific)
- error details (string or structured)
- error message parameters for message localization purposes
...
From other hand the nature of a possible error (e.g. ) and the source module (the initial exception
is thrown from)
is quite variable. So it requires some unified and clear way for error information
delivery
from from service level (cps-service component) and below (e.g. persistence level) ). Also both
error message and error information delivery expected to be easily extendable.
Proposal
The error message builder is usually implemented as an Exception handler (\@ControllerAdvice
tied to rest controller implementation) being part of rest module due to dependencies
on generated artifact.
To minimize the variety of cases to handle the project specific Exception to be introduced on
service level. The customer specific cases to be implemented via Exception inheritance.
cps-rest
- Error message model artifact - generated from OpenAPI spec on build
- error message builder - uses current module exceptions and the CpsException
(plus sub-types) returned thrown by cps-service
cps-service
- CpsExeption artifact as a part of Service API and SPI
To discuss/decide
- The Error message artifact vs OpenAPI - generated from or predefined (with annotation)
- Type of CpsException - checked vs unchecked