CurlDotNet

CurlDotNet.Middleware

ICurlMiddleware Interface

Interface for curl middleware/interceptors.

public interface ICurlMiddleware

Derived
AuthenticationMiddleware
CachingMiddleware
LoggingMiddleware
RateLimitMiddleware
RequestModifierMiddleware
ResponseModifierMiddleware
RetryMiddleware
TimingMiddleware

Example

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.

About This Documentation

💎 Sponsored by IronSoftware - Enterprise .NET components trusted by thousands of developers worldwide.

✍️ Written by Jacob Mellor, CTO at IronSoftware.

📦 Get CurlDotNet: NuGet Package | GitHub Repository