MicroElements.Swashbuckle.FluentValidation 7.1.3
Swagger ISchemaFilter that uses FluentValidation validators instead System.ComponentModel based attributes.
No packages depend on MicroElements.Swashbuckle.FluentValidation.
$# Changes in 7.1.3
- Fixed:
$refreplaced with inline schema copy when usingSetValidatorwith nested object types (Issue #198)ResolveRefProperty(introduced in 7.1.2 for BigInteger isolation) replaced all$refproperties with copies, destroying reference structure in the OpenAPI document- Fix: snapshot
$refproperties 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:
BigIntegersupport for min/max validation constraints in OpenAPI schema generation (Issue #146)IsNumeric()andNumericToDecimal()now handleBigIntegervaluesBigIntegerproperties with GreaterThan, LessThan, InclusiveBetween, ExclusiveBetween rules produce correctminimum/maximumin Swagger- NSwag provider updated with the same
BigIntegersupport - Out-of-range
BigIntegervalues (exceedingdecimalrange) are handled gracefully via existing try/catch
- Fixed: Shared schema mutation when multiple models reference the same
BigIntegertype with different constraints (net10.0)ResolveRefPropertycreates an isolated shallow copy before applying rule mutations- Prevents
$ref-based schema corruption across models inSchemaRepository
- Fixed: Replaced deprecated
PackageLicenseUrlwithPackageLicenseExpression(Issue #144) - Fixed: Replaced deprecated
PackageIconUrlwith embeddedPackageIcon
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 bothFluentValidationOperationFilterandFluentValidationDocumentFilter - Supports arbitrarily deep nesting (e.g.,
a.b.c→c)
- When Swashbuckle decomposes
- Added:
SetNotNullableIfMinimumGreaterThenZerooption 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)
- Distinct from existing
- Fixed:
SetNotNullableIfMinLengthGreaterThenZerooption now works in NSwag provider (Issue #154)NSwagFluentValidationRuleProvidernow acceptsIOptions<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
Changes in 7.1.0
- Added: New package
MicroElements.AspNetCore.OpenApi.FluentValidationfor Microsoft.AspNetCore.OpenApi support (Issue #149)- Implements
IOpenApiSchemaTransformerfor .NET 9 and .NET 10 - Supports all FluentValidation rules: Required, NotEmpty, Length, Pattern, Email, Comparison, Between
- Handles AllOf/OneOf/AnyOf sub-schemas for polymorphic models
- No dependency on Swashbuckle
- User-facing API:
services.AddFluentValidationRulesToOpenApi()+options.AddFluentValidationRules() - .NET 10: full nested validator support via
GetOrCreateSchemaAsync - .NET 9: limited nested validator support (fallback to empty schema)
- Implements
- Fixed: AspNetCore.OpenApi.FluentValidation support for .NET 10 (Issue #149, PR #192)
- Added: Sample project
SampleAspNetCoreOpenApidemonstrating Microsoft.AspNetCore.OpenApi integration - Added: ADR-001 documenting the architectural decision for AspNetCore.OpenApi support
Changes in 7.1.0-beta.1
- Added: New package
MicroElements.AspNetCore.OpenApi.FluentValidationfor Microsoft.AspNetCore.OpenApi support (Issue #149)- Implements
IOpenApiSchemaTransformerfor .NET 9 and .NET 10 - Supports all FluentValidation rules: Required, NotEmpty, Length, Pattern, Email, Comparison, Between
- Handles AllOf/OneOf/AnyOf sub-schemas for polymorphic models
- No dependency on Swashbuckle
- User-facing API:
services.AddFluentValidationRulesToOpenApi()+options.AddFluentValidationRules() - .NET 10: full nested validator support via
GetOrCreateSchemaAsync - .NET 9: limited nested validator support (fallback to empty schema)
- Implements
- Added: Sample project
SampleAspNetCoreOpenApidemonstrating Microsoft.AspNetCore.OpenApi integration - Added: ADR-001 documenting the architectural decision for AspNetCore.OpenApi support
Full release notes can be found at: https://github.com/micro-elements/MicroElements.Swashbuckle.FluentValidation/blob/master/CHANGELOG.md
.NET 8.0
- MicroElements.OpenApi.FluentValidation (>= 7.1.3)
- Swashbuckle.AspNetCore.SwaggerGen (>= 8.1.1)
.NET 9.0
- MicroElements.OpenApi.FluentValidation (>= 7.1.3)
- Swashbuckle.AspNetCore.SwaggerGen (>= 8.1.1)
.NET 10.0
- MicroElements.OpenApi.FluentValidation (>= 7.1.3)
- Swashbuckle.AspNetCore.SwaggerGen (>= 10.0.0)
| Version | Downloads | Last updated |
|---|---|---|
| 7.1.5-beta | 0 | 2026-04-01 |
| 7.1.4 | 0 | 2026-03-29 |
| 7.1.4-beta | 0 | 2026-03-24 |
| 7.1.3 | 24 | 2026-03-26 |
| 7.1.2 | 1 | 2026-03-16 |
| 7.1.1 | 0 | 2026-03-09 |
| 7.1.0 | 0 | 2026-03-09 |
| 7.1.0-beta.2 | 0 | 2026-03-06 |
| 7.1.0-beta.1 | 0 | 2026-02-23 |
| 7.0.6 | 0 | 2026-03-03 |
| 7.0.5 | 0 | 2026-02-26 |
| 7.0.4 | 0 | 2026-02-17 |
| 7.0.4-beta.3 | 0 | 2026-02-14 |
| 7.0.4-beta.2 | 0 | 2026-02-14 |
| 7.0.4-beta.1 | 0 | 2026-02-14 |
| 7.0.3 | 0 | 2025-12-23 |
| 7.0.2 | 0 | 2025-12-23 |
| 7.0.1 | 0 | 2025-12-08 |
| 7.0.0 | 0 | 2025-12-07 |
| 6.1.1 | 0 | 2025-09-02 |
| 6.1.0 | 0 | 2024-11-26 |
| 6.0.0 | 413 | 2025-04-15 |
| 6.0.0-beta.3 | 0 | 2023-02-19 |
| 6.0.0-beta.1 | 0 | 2022-07-23 |
| 5.7.0 | 0 | 2022-06-10 |
| 5.6.0 | 0 | 2022-05-03 |
| 5.5.0 | 0 | 2022-03-28 |
| 5.4.0 | 0 | 2021-09-19 |
| 5.3.0 | 0 | 2021-09-01 |
| 5.2.0 | 0 | 2021-07-31 |
| 5.1.0 | 0 | 2021-06-15 |
| 5.1.0-rc.2 | 0 | 2021-06-03 |
| 5.1.0-rc.1 | 0 | 2021-06-01 |
| 5.0.0 | 0 | 2021-05-30 |
| 5.0.0-rc.2 | 0 | 2021-05-18 |
| 5.0.0-rc.1 | 0 | 2021-05-16 |
| 4.3.0 | 0 | 2021-03-25 |
| 4.3.0-rc.1 | 0 | 2021-03-21 |
| 4.2.0 | 0 | 2021-02-18 |
| 4.1.0 | 0 | 2021-01-21 |
| 4.1.0-rc.1 | 0 | 2021-01-06 |
| 4.0.0 | 0 | 2020-08-21 |
| 4.0.0-rc.2 | 0 | 2020-07-18 |
| 4.0.0-rc.1 | 0 | 2020-06-15 |
| 3.2.0 | 0 | 2020-06-14 |
| 3.1.1 | 0 | 2020-04-28 |
| 3.1.0 | 0 | 2020-03-25 |
| 3.0.0 | 0 | 2020-03-07 |
| 3.0.0-rc.6 | 0 | 2020-02-05 |
| 3.0.0-rc.5 | 0 | 2020-01-24 |
| 3.0.0-rc.4 | 0 | 2019-12-29 |
| 3.0.0-rc.3 | 0 | 2019-11-28 |
| 3.0.0-rc.2 | 0 | 2019-10-13 |
| 3.0.0-rc.1 | 0 | 2019-09-30 |
| 3.0.0-beta.1 | 0 | 2019-04-26 |
| 3.0.0-alpha.1 | 0 | 2019-04-23 |
| 2.3.0 | 0 | 2019-11-14 |
| 2.2.1 | 0 | 2019-10-13 |
| 2.2.0 | 0 | 2019-08-28 |
| 2.1.1 | 0 | 2019-04-26 |
| 2.1.0 | 0 | 2019-04-08 |
| 2.0.1 | 0 | 2019-04-06 |
| 2.0.0 | 0 | 2019-03-13 |
| 2.0.0-beta.5 | 0 | 2019-02-13 |
| 2.0.0-beta.4 | 0 | 2019-02-11 |
| 2.0.0-beta.3 | 0 | 2019-01-28 |
| 2.0.0-beta.2 | 0 | 2019-01-10 |
| 2.0.0-beta.1 | 0 | 2018-11-12 |
| 1.2.0 | 0 | 2019-01-22 |
| 1.1.0 | 0 | 2018-11-10 |
| 1.0.0 | 0 | 2018-09-26 |
| 1.0.0-rc.1 | 0 | 2018-09-22 |
| 1.0.0-beta.3 | 0 | 2018-09-19 |
| 1.0.0-beta.2 | 0 | 2018-09-10 |
| 1.0.0-beta.1 | 0 | 2018-08-26 |
| 0.8.2 | 0 | 2018-06-29 |
| 0.8.1 | 0 | 2018-06-20 |
| 0.8.0 | 0 | 2018-06-12 |
| 0.8.0-beta.1 | 0 | 2018-05-11 |
| 0.7.0 | 0 | 2018-04-11 |
| 0.6.0 | 0 | 2018-04-04 |
| 0.5.0 | 0 | 2018-03-30 |
| 0.4.0 | 0 | 2018-03-29 |
| 0.3.0 | 0 | 2018-03-25 |
| 0.2.0 | 0 | 2018-03-25 |
| 0.1.0 | 0 | 2018-03-20 |