Phase 25 of 30 · Topic 25.2

Endpoint Filters (`IEndpointFilter`) & Cross-Cutting Middleware

1Concept

`IEndpointFilter` encapsulates cross-cutting logic (validation, metrics, logging, transaction management) around individual Minimal API endpoints without global middleware pollution.

2Architecture Diagram

Incoming Request ──> [ Endpoint Filter 1 (Validate Token) ]
                                      │ (Proceeds)
                                      ▼
                        [ Endpoint Filter 2 (Audit Log) ]
                                      │ (Proceeds)
                                      ▼
                           [ Route Handler Execution ]

3Code Example

C# 13 & .NET 9
using System;
using System.Threading.Tasks;

public class EndpointFilterConcept
{
    public static void Main()
    {
        Console.WriteLine("Endpoint filters wrap route handlers cleanly:");
        Console.WriteLine("app.MapPost("/checkout", HandleCheckout).AddEndpointFilter<ValidationFilter>();");
    }
}

4Expected Output

Endpoint filters wrap route handlers cleanly:
app.MapPost("/checkout", HandleCheckout).AddEndpointFilter<ValidationFilter>();

5Key Takeaways

  • Filters execute in the order they are chained (`.AddEndpointFilter()`).
  • Can inspect and modify endpoint arguments before execution and responses after execution.
  • Can short-circuit invalid requests before executing business handlers.