[REFACTOR] introduces ApiRequest and dynamic dispatch across implementations #19
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.
Summary:
There are different ways to make a request. The convenience of the old
PokeApiRequest
is that it is allows for separation between the declaration of the request and its invocation. This general structure is captured by the newDeferredRequest
protocol. TheApiRequest
enum is introduced as an encapsulation of the variousDeferredRequest
implementations. Dynamic dispatch across implementations can be implicitly controlled by setting the "API_REQUEST_IMPL" environment variable.Notes:
pokedex.api.client
members and would relieve dependence on test mocks.