Table of Contents

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

context CurlContext

The curl context containing request information

next Func<Task<CurlResult>>

The next middleware in the pipeline

Returns

Task<CurlResult>

The curl result