I see a common pattern in several REST or otherwise HTTP APIs that I am using, of the form:
- Initiate an operation with the API, e.g. by a
- Receive some kind of
operationIdfrom the API in the response
- Periodically poll the API on another endpoint asking for the status of the operation.
- Once the API has a status of "complete", call another endpoint on the API to retrieve the results synchronously
There is common code on the part of the client. I'd like to find some software that implements this common code rather than writing it myself. Here are the features it would need:
- Accept a .NET
Action<TResult>, or a URL to act as a webhook, to process the response, when it is ready.
- Loop around looking for status updates, perhaps by being presented with a
Func<TOperationIdentifier, bool>which would wrap a synchronous status check operation.
- Be resilient to shut down and restart and know which operations still need to be checked for completion.
- Some kind of built in back-off strategies and allowance for throttling the API calls would be a bonus.
The technology would ideally be .NET and the platform would be Windows. Whether it's a .NET in-process library (e.g. via NuGet) or an out of process service doesn't matter. I cannot imagine a cloud based solution being particularly easy to configure with the necessary status retrieval function, but I may be wrong.
The specific use cases I am seeing this for are: - Rakuten marketplace APIs - Amazon Merchant Web Services - eBay API
I believe other APIs, such as Azure, also operate similarly.
In terms of cost, I don't mind paying but I'm looking for a small scale offering, up to, say £1,000, and not an enterprise solution. Ideally it would be an open source framework that I had to integrate with my own application.