Cleanup ExplorerApiClient and ApiClient, share OkHttp instance #156
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 cleans up ExplorerApiClient from a lot of unreachable code, and some code smells in ApiClient when using a proxy.
NodeAndExplorerDataSourceImpl shares its OkHttpClient between both ApiClient and ExplorerApiClient, as it is strongly advised to use OkHttpClient as a singleton (see OkHttpClient documentation). So instead of two new instances we only use one this way.
To get this even better, it should be possible to set the OkHttpClient to be used by
RestApiErgoClient
so that not a new one has to be spin up for every instantiation of it. I think the current proxy param of RestApiErgoClient should be replaced by a OkHttpClientBuilder param as this lets clients set proxy and many more settings like timeout etc. I just wanted to ask you on your opinion @aslesarenko because this means leaking implementation details to the clients, but this has strong technical reasons and is done by Retrofit for the same reason.