-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[1.x] Allow customisation of HttpClient
#194
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## v1 #194 +/- ##
============================================
+ Coverage 62.88% 63.17% +0.29%
Complexity 214 214
============================================
Files 95 96 +1
Lines 2697 2724 +27
Branches 46 46
============================================
+ Hits 1696 1721 +25
- Misses 990 992 +2
Partials 11 11 |
…-, query-, and subscription-specific `Client`s via `ClientOptions`.
…e who might want to override it.
armiol
changed the title
[1.x] Allow the customization of
[1.x] Allow customisation of Jan 12, 2023
HttpClient
HttpClient
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This changeset addresses #164, #165, and #189.
Customising
HttpClient
It is now possible to customise
HttpClient
for each type of requests (sending commands, queries, or interacting with subscriptions):Such a custom implementation now allows to override methods, responsible for setting HTTP headers, setting the request mode, or transforming the original proto message into an HTTP body. Here is an excerpt from
HttpClient
showing the default implementations for each overridable method:Interpreting Server Responses
Additionally, a new
HttpResponseHandler
routine has been extracted from the existing code. It is responsible for transforming the raw response content into JS objects. The default implementation — what we used to have in previous versions as a hard-coded behaviour — expects the server-side to return a JSON string, and parses it into a JS object.Now, it is possible to provide a custom
HttpResponseHandler
, in the same manner asHttpClient
:Here is a default implementation of parsing, as specified by
HttpResponseHandler
. This is a@protected
method designed to be overridable in descendants:The library version is set to
1.9.0-SNAPSHOT.9
.