| name | api-setup |
| description | Configure affolterNET.Web.Api service registration and middleware pipeline. Use when setting up AddApiServices, ConfigureApiApp, or configuring the API middleware order. |
API Setup
Configure the affolterNET.Web.Api service registration and middleware pipeline.
For complete reference, see Library Guide.
Quick Start
// Program.cs
var builder = WebApplication.CreateBuilder(args);
// Step 1: Register services
var options = builder.Services.AddApiServices(
builder.Environment.IsDevelopment(),
builder.Configuration,
opts => {
opts.EnableSecurityHeaders = true;
opts.ConfigureApi = api => {
api.AuthMode = AuthenticationMode.Authorize;
};
});
var app = builder.Build();
// Step 2: Configure middleware
app.ConfigureApiApp(options);
app.Run();
Configuration Options
ApiAppOptions
| Property | Type | Description |
|---|---|---|
EnableSecurityHeaders |
bool | Enable security headers middleware |
ConfigureApi |
Action |
Configure API-specific options |
ConfigureAfterRoutingCustomMiddleware |
Action |
Add custom middleware after routing |
ConfigureBeforeEndpointsCustomMiddleware |
Action |
Add custom middleware before endpoints |
ApiOptions
| Property | Type | Default | Description |
|---|---|---|---|
AuthMode |
AuthenticationMode | None |
Authentication mode (None/Authenticate/Authorize) |
Middleware Pipeline
The ConfigureApiApp configures middleware in this order:
- Security Headers Middleware
- Swagger/OpenAPI
- Routing
- Custom Middleware (after routing hook)
- CORS
- Authentication & Authorization + RPT Middleware
- Custom Middleware (before endpoints hook)
- Endpoint Mapping (with Health Checks)
Common Patterns
Development vs Production
var options = builder.Services.AddApiServices(
builder.Environment.IsDevelopment(), // isDev flag
builder.Configuration,
opts => {
// Development-specific config happens automatically
// based on isDev flag
});
Adding Custom Middleware
var options = builder.Services.AddApiServices(isDev, config, opts => {
opts.ConfigureAfterRoutingCustomMiddleware = app => {
app.UseMiddleware<RequestLoggingMiddleware>();
};
opts.ConfigureBeforeEndpointsCustomMiddleware = app => {
app.UseMiddleware<TenantMiddleware>();
};
});