MicroElements.AspNetCore.OpenApi.FluentValidation
7.1.5-beta
Prefix Reserved
dotnet add package MicroElements.AspNetCore.OpenApi.FluentValidation --version 7.1.5-beta
NuGet\Install-Package MicroElements.AspNetCore.OpenApi.FluentValidation -Version 7.1.5-beta
<PackageReference Include="MicroElements.AspNetCore.OpenApi.FluentValidation" Version="7.1.5-beta" />
<PackageVersion Include="MicroElements.AspNetCore.OpenApi.FluentValidation" Version="7.1.5-beta" />
<PackageReference Include="MicroElements.AspNetCore.OpenApi.FluentValidation" />
paket add MicroElements.AspNetCore.OpenApi.FluentValidation --version 7.1.5-beta
#r "nuget: MicroElements.AspNetCore.OpenApi.FluentValidation, 7.1.5-beta"
#:package MicroElements.AspNetCore.OpenApi.FluentValidation@7.1.5-beta
#addin nuget:?package=MicroElements.AspNetCore.OpenApi.FluentValidation&version=7.1.5-beta&prerelease
#tool nuget:?package=MicroElements.AspNetCore.OpenApi.FluentValidation&version=7.1.5-beta&prerelease
Applies FluentValidation rules to OpenAPI schemas generated by Microsoft.AspNetCore.OpenApi (IOpenApiSchemaTransformer).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- MicroElements.OpenApi.FluentValidation (>= 7.1.5-beta)
- Microsoft.AspNetCore.OpenApi (>= 10.0.0 && < 11.0.0)
-
net9.0
- MicroElements.OpenApi.FluentValidation (>= 7.1.5-beta)
- Microsoft.AspNetCore.OpenApi (>= 9.0.0 && < 10.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 7.1.5-beta | 22 | 4/1/2026 |
| 7.1.4 | 69 | 3/29/2026 |
| 7.1.4-beta | 234 | 3/24/2026 |
| 7.1.3 | 197 | 3/24/2026 |
| 7.1.2 | 1,273 | 3/9/2026 |
| 7.1.1 | 83 | 3/9/2026 |
| 7.1.0 | 85 | 3/9/2026 |
| 7.1.0-beta.2 | 256 | 3/6/2026 |
| 7.1.0-beta.1 | 532 | 2/23/2026 |
$# Changes in 7.1.5
- Added: `ConditionalRulesMode` option to control how `.When()`/`.Unless()` conditional rules are handled during schema generation (Issue #203)
- `Exclude` (default): conditional rules are excluded from the schema (backward-compatible, existing behavior)
- `Include`: conditional rules are included in the schema (useful when `.When()` is a null-guard and constraints should still appear)
- `IncludeWithWarning`: same as `Include` but logs a warning for each conditional rule included
- Usage: `options.ConditionalRules = ConditionalRulesMode.Include;`
# Changes in 7.1.4
- Added: `FluentValidationOperationTransformer` (`IOpenApiOperationTransformer`) for `MicroElements.AspNetCore.OpenApi.FluentValidation` (Issue #200)
- Query parameters with `[AsParameters]` now receive validation constraints (min/max, required, pattern, etc.)
- Supports container type resolution with fallback via reflection for `[AsParameters]`
- Copies validation constraints from schema properties to parameter schemas
- Registered automatically via `AddFluentValidationRules()`
- Fixed: Nested DTOs in request body not receiving validation constraints (Issue #200)
- `FluentValidationSchemaTransformer` skipped all property-level schemas, but for nested object types this was the only transformer call
- Now processes property-level schemas for complex types using the property type's validator
# Changes in 7.1.3
- Fixed: `$ref` replaced with inline schema copy when using `SetValidator` with nested object types (Issue #198)
- `ResolveRefProperty` (introduced in 7.1.2 for BigInteger isolation) replaced all `$ref` properties with copies, destroying reference structure in the OpenAPI document
- Fix: snapshot `$ref` properties before rule application, restore them afterwards if no validation constraints were added by rules
- BigInteger per-model constraints (Issue #146) continue to work correctly
# Changes in 7.1.2
- Added: `BigInteger` support for min/max validation constraints in OpenAPI schema generation (Issue #146)
- `IsNumeric()` and `NumericToDecimal()` now handle `BigInteger` values
- `BigInteger` properties with GreaterThan, LessThan, InclusiveBetween, ExclusiveBetween rules produce correct `minimum`/`maximum` in Swagger
- NSwag provider updated with the same `BigInteger` support
- Out-of-range `BigInteger` values (exceeding `decimal` range) are handled gracefully via existing try/catch
- Fixed: Shared schema mutation when multiple models reference the same `BigInteger` type with different constraints (net10.0)
- `ResolveRefProperty` creates an isolated shallow copy before applying rule mutations
- Prevents `$ref`-based schema corruption across models in `SchemaRepository`
- Fixed: Replaced deprecated `PackageLicenseUrl` with `PackageLicenseExpression` (Issue #144)
- Fixed: Replaced deprecated `PackageIconUrl` with embedded `PackageIcon`
# Changes in 7.1.1
- Fixed: Nested object validation not applied for `[FromQuery]` parameters (Issue #162)
- When Swashbuckle decomposes `[FromQuery]` models with nested objects into flat parameters (e.g., `operation.op`), the full dot-path name was used for schema property matching instead of the leaf name (`op`)
- `EqualsIgnoreAll("operation.op", "op")` compared `"OPERATIONOP"` vs `"OP"` and failed to match
- Strip dot-path prefix using `LastIndexOf('.')` in both `FluentValidationOperationFilter` and `FluentValidationDocumentFilter`
- Supports arbitrarily deep nesting (e.g., `a.b.c` → `c`)
- Added: `SetNotNullableIfMinimumGreaterThenZero` option to separately control nullable behavior for numeric Minimum constraints (Issue #154, ported from vchirikov fork PR #2)
- Distinct from existing `SetNotNullableIfMinLengthGreaterThenZero` (for string MinLength)
- Default: `false` (backward compatible)
- Fixed: `SetNotNullableIfMinLengthGreaterThenZero` option now works in NSwag provider (Issue #154)
- `NSwagFluentValidationRuleProvider` now accepts `IOptions<SchemaGenerationOptions>`
- Rules NotEmpty, Length, Comparison, Between respect both nullable options
- Feature parity across Swashbuckle, AspNetCore.OpenApi, and NSwag providers
- Improved: Comparison/Between rules now use `SetNotNullableIfMinimumGreaterThenZero()` which checks actual Minimum value instead of unconditionally setting not-nullable
Full release notes can be found at: https://github.com/micro-elements/MicroElements.Swashbuckle.FluentValidation/blob/master/CHANGELOG.md