Interface ICurlMiddleware
- Namespace
- CurlDotNet.Middleware
- Assembly
- CurlDotNet.dll
Interface for curl middleware/interceptors.
public interface ICurlMiddleware
Examples
public class LoggingMiddleware : ICurlMiddleware
{
public async Task<CurlResult> ExecuteAsync(CurlContext context, Func<Task<CurlResult>> next)
{
Console.WriteLine($"Executing: {context.Command}");
var result = await next();
Console.WriteLine($"Status: {result.StatusCode}");
return result;
}
}
Remarks
Middleware can modify requests before execution and responses after execution.
Multiple middleware can be chained together in a pipeline.
AI-Usage: Implement this interface to add cross-cutting concerns like logging, retry, caching, etc.
Methods
ExecuteAsync(CurlContext, Func<Task<CurlResult>>)
Execute the middleware logic.
Task<CurlResult> ExecuteAsync(CurlContext context, Func<Task<CurlResult>> next)
Parameters
contextCurlContextThe curl context containing request information
nextFunc<Task<CurlResult>>The next middleware in the pipeline
Returns
- Task<CurlResult>
The curl result