Series on change to clean the http client code a bit and add a first layer of retry and rate limiting capabilities
This have no reason to be a closure, so we extract it as a proper
client: reorder some conditionnal
Let us put the simple case first and the longer one after it.
client: move make_request to be a method
This has not reason to be a closure, so let it not be a closure.
client: transforme the swhid to string earlier
This simplify the function we call in the loop, cannot hurt.
client: compute the client endpoin once and ealier
This make the user function simpler.
fixup! output: pick "summary" as the default
client: prepare for retry
client: add some basic error detection and rate limiting
We retry on error and we adjust to the X-RateLimit header the server
send us. This is quite basic, and has to struggle against the async
implementation of the request.
So further works should probably refactor the concurrency of the request
implementation before going further.
See inline documentation for details.
Better handling of ClientConnectionError are also needed.