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.