cloudapi: get specific error from openapi
Error handling is structured in such a way that typically, a ServiceCodeError is passed through the echo HTTP error, in reference to internally defined errors. We want to be able to obtain and return specific external errors, for example during validation from openapi3. Add a 'details' field to the serviceError struct, to contain extra / externally defined information. Modify HTTPErrorHandler to anticipate either a string or a ServiceErrorCode from echo, and respond accordingly. Edit the affected tests to expect the appropriate response.
This commit is contained in:
parent
d59d870574
commit
765e93bfc8
8 changed files with 144 additions and 116 deletions
|
|
@ -79,7 +79,7 @@ func (h *apiHandlers) GetError(ctx echo.Context, id string) error {
|
|||
return HTTPError(ErrorInvalidErrorId)
|
||||
}
|
||||
|
||||
apiError := APIError(ServiceErrorCode(errorId), nil, ctx)
|
||||
apiError := APIError(ServiceErrorCode(errorId), nil, ctx, nil)
|
||||
// If the service error wasn't found, it's a 404 in this instance
|
||||
if apiError.Id == fmt.Sprintf("%d", ErrorServiceErrorNotFound) {
|
||||
return HTTPError(ErrorErrorNotFound)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue