chore(volo-http): refactor client error #395
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
The previous client error is not general enough, and with mod
error
introduced, rejection error should also be in the mod.And this PR introduces a new config
fail_on_error_status
for client. If it is enabled, server response with 4xx or 5xx status will be converted toClientError
withErrorKind::Status
.In addition, some methods of
ClientBuiler
arefn foo(self, xxx) -> Self
, and some methods arefn bar(&mut self, xxx) -> &mut Self
. This PR also unifies them tofn bar(&mut self, xxx) -> &mut Self
, because it may be passed to somewhere as&mut ClientBuilder
, it is more convenient.Solution
ClientErrorInner
toOption<BoxError>
andOption<Uri>
RejectionError
fromserver::extract
toerror::server
fn foo(self, xxx) -> Self
tofn bar(&mut self, xxx) -> &mut Self
forClientBuilder
.