mirror of
https://github.com/azaion/satellite-provider.git
synced 2026-06-27 11:01:16 +00:00
[AZ-1132] [AZ-1133] Cycle 15 closeout and cycle 16 task setup
Doc ripple for FluentValidation bump, cycle 15 retro, and AZ-1133 perf preflight task queued for cycle 16. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -14,7 +14,7 @@ Defines the uniform RFC 7807 ProblemDetails / ValidationProblemDetails shape eve
|
||||
The contract is enforced by two collaborating pieces of shared infrastructure:
|
||||
|
||||
1. **Deserializer-level rejection** — `JsonSerializerOptions.UnmappedMemberHandling.Disallow` (.NET 8+) catches unknown fields, type mismatches, and malformed JSON. The framework's `BadHttpRequestException` carries a `System.Text.Json.JsonException` as its inner exception; `GlobalExceptionHandler` (`SatelliteProvider.Api/GlobalExceptionHandler.cs`) extracts the JSON path and emits a `ValidationProblemDetails` body.
|
||||
2. **Business-rule rejection** — `FluentValidation` (12.0.0) validators wired through the generic `ValidationEndpointFilter<T>` (`SatelliteProvider.Api/Validators/ValidationEndpointFilter.cs`). Endpoints opt in via `RouteHandlerBuilder.WithValidation<T>()`. The filter calls `Results.ValidationProblem(result.ToDictionary())`, which produces an identically-shaped body.
|
||||
2. **Business-rule rejection** — `FluentValidation` (12.1.1) validators wired through the generic `ValidationEndpointFilter<T>` (`SatelliteProvider.Api/Validators/ValidationEndpointFilter.cs`). Endpoints opt in via `RouteHandlerBuilder.WithValidation<T>()`. The filter calls `Results.ValidationProblem(result.ToDictionary())`, which produces an identically-shaped body.
|
||||
|
||||
Both paths produce `Content-Type: application/problem+json`. Both populate the same `errors` map keyed by request-body field path.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user