FlexQuery.NET.OpenApi
4.0.0-beta1.0
See the version list below for details.
dotnet add package FlexQuery.NET.OpenApi --version 4.0.0-beta1.0
NuGet\Install-Package FlexQuery.NET.OpenApi -Version 4.0.0-beta1.0
<PackageReference Include="FlexQuery.NET.OpenApi" Version="4.0.0-beta1.0" />
<PackageVersion Include="FlexQuery.NET.OpenApi" Version="4.0.0-beta1.0" />
<PackageReference Include="FlexQuery.NET.OpenApi" />
paket add FlexQuery.NET.OpenApi --version 4.0.0-beta1.0
#r "nuget: FlexQuery.NET.OpenApi, 4.0.0-beta1.0"
#:package FlexQuery.NET.OpenApi@4.0.0-beta1.0
#addin nuget:?package=FlexQuery.NET.OpenApi&version=4.0.0-beta1.0&prerelease
#tool nuget:?package=FlexQuery.NET.OpenApi&version=4.0.0-beta1.0&prerelease
FlexQuery.NET.OpenApi
OpenAPI/Swagger documentation and examples for FlexQuery.NET endpoints.
When to Use This Package
Install this package when you expose FlexQuery-enabled endpoints and want automatic OpenAPI schema descriptions, parameter documentation, and canonical request/response examples in your Swagger UI or OpenAPI document.
Installation
dotnet add package FlexQuery.NET.OpenApi
Registration
builder.Services.AddFlexQueryOpenApi();
This registers schema and operation transformers that enrich your OpenAPI document with:
- Descriptions for all FlexQuery model types (
FlexQueryRequest,FlexQueryParameters,QueryResult<T>, etc.) - Descriptions for query parameters (
filter,select,sort,page,pageSize,includeCount) - Canonical, production-quality examples for
FlexQueryRequest,FlexQueryParameters, andQueryResult<T>
Quick Start
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddFlexQueryOpenApi();
builder.Services.AddOpenApi(options =>
{
options.AddFlexQuery();
});
var app = builder.Build();
app.MapOpenApi();
app.Run();
Features
- Schema Descriptions — Human-readable descriptions for all FlexQuery model types (
FlexQueryRequest,FlexQueryParameters,QueryResult<T>,FilterGroup,FilterCondition,SortNode,PagingOptions,AggregateModel,HavingCondition,IncludeNode,ProjectionMode,LogicOperator,AggregateFunction) - Parameter Documentation — Descriptions for query parameters (
filter,select,sort,page,pageSize,includeCount) - Canonical Examples — Production-quality, strongly typed examples for
FlexQueryRequest,FlexQueryParameters, andQueryResult<T>that immediately demonstrate FlexQuery capabilities - Zero Configuration — Single registration call, no options, no builders
- Minimal Public API — Two extension methods, everything else internal
Related Packages
- FlexQuery.NET — Core query engine
- FlexQuery.NET.AspNetCore — ASP.NET Core integration
- FlexQuery.NET.EntityFrameworkCore — EF Core execution
- FlexQuery.NET.Dapper — Dapper execution
Documentation
| 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
- FlexQuery.NET (>= 4.0.0-beta1.0)
- Microsoft.AspNetCore.OpenApi (>= 10.0.0)
-
net9.0
- FlexQuery.NET (>= 4.0.0-beta1.0)
- Microsoft.AspNetCore.OpenApi (>= 9.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 |
|---|---|---|
| 4.0.0-rc.1 | 41 | 9/10/2026 |
| 4.0.0-preview.3 | 65 | 7/18/2026 |
| 4.0.0-preview.2 | 66 | 7/14/2026 |
| 4.0.0-preview.1 | 68 | 7/12/2026 |
| 4.0.0-beta1.0 | 43 | 9/8/2026 |
- feat(dapper): emit copy-paste-ready DECLARE scripts in SQL execution logs
- refactor(diagnostics): move SqlFormatter to the shared FlexQuery.NET.SqlFormatting namespace
- fix(dapper): rewrite expand-block filter/sort fields through nested TypeMaps
- feat(dapper): log final SQL and parameters before every Dapper command
- test: cover Dapper include boundary and ForMember nested select projection
- test: add ExpectedDeliveryDate and Address navigation to shared fixtures
- feat(dapper): rewrite nested select children through TypeMaps and merge include hydration
- test(integration): cover parent-preserving collection include semantics
- test(integration): cover DTO include graph boundary semantics
- feat(mapping): materialize only the requested navigation graph in typed DTO queries
- feat(core): add DynamicGroupedResult model for grouped query execution
- test: cover serialization, validation, DI, parser, and builder updates
- test(dapper): cover Dapper DTO queries and HTTP integration surfaces
- test(integration): cover typed DTO, deep expansion, and navigation governance end to end
- test(mapping): cover AutoMapper-style mapping across EF Core and Dapper
- test: extend shared fixtures and models for typed DTO test coverage
- feat(samples): demo typed DTO queries in the sample WebApi
- feat(parsers): support 'as' select aliases and space-form sort directions
- feat(core): enforce public surface across sort, projection, keyset, and group builders
- feat(validation): enforce DTO public surface and expand-path governance
- feat(dapper): add typed DTO FlexQueryAsync overloads with surface-aware SQL generation
- feat(efcore): add typed DTO FlexQueryAsync overloads with grouped-query executor
- feat(serialization): shape QueryResult output to the selected DTO surface
- feat(core): add DTO projection builder and result-shape models for typed queries
- feat(mapping): add AutoMapper-style global mapping registry with TypeMap builder
- feat(core): add QuerySurface abstraction and unify field resolution through FieldResolver
- feat: remove CaseInsensitive option and all case-normalization wrappers
- feat(dapper): optimize Include materialization with direct projection path
- feat(dapper): strongly-type projected entities via DynamicTypeBuilder and resolve mapped property names in SQL output
- feat(dapper): apply JSON naming transformer to projected property names
- feat(validation): add rule requiring Include/Expand for navigation projections
- test: cover expand sort/take, paging defaults, cache keys, and projections
- test: cover split-query hydration, simple include streaming, and SQL builders
- feat(efcore): support sort/take in filtered include selectors
- feat(core): extend projection tree and metadata with Sort/Take
- feat(core): add Sort/Take to SelectionNode and propagate to cache keys
- feat(dapper): support expand sort/take in FlexQuery Dapper parameter parsing
- feat(dapper): implement split-query include hydration and simple include streaming
- test(expand): add integration and validation tests for expand/include pipeline
- fix(validation): reject expand when include list is empty or missing
- fix(efcore): merge expand configuration into include tree
- fix(dapper): exclude include-only joins from totalCount query
- test: update tests for renamed APIs and add principal key resolution tests
- fix: resolve principal key from entity mapping instead of hard-coded Id
- refactor: clean up FlexQuery.Dapper mapping API surface
- fix(expand): validate all expand nodes and handle empty includes
- fix(expand): enforce strict syntax in FQL expand parser
- fix(expand): normalize DSL expand parser to flat Path lists
- test(expand): add comprehensive test coverage for expand feature
- feat(expand): extend IncludeAccessValidationRule for expand paths
- feat(expand): add expand validation rules
- feat(expand): add DSL expand parser with nested block support
- feat(expand): add FQL expand parser with semicolon-separated options
- feat(expand): add ExpandAst model, normalizer, and core integration
- test(governance): switch GovernanceReviewChangesTests to shared models and add nested wildcard locking tests
- feat(aspnetcore): expose AllowedIncludes on FieldAccessAttribute and wire it in FieldAccessFilter
- feat(validation): enforce aggregate-select-without-groupby rule
- test(integration): update grouped query tests for strict sort validation
- test(validation): add unit tests for new GROUP BY validation rules
- refactor(validation): enforce grouped sort validation via ValidateOrThrow
- feat(validation): add GROUP BY projection, sort, and HAVING validation rules
- refactor(validation): improve governance configuration validation error messages
- fix(parsers): improve error position reporting for HAVING and FQL safety validator
- fix(parsers): report position of '*' token in HAVING aggregate field error
- feat(dsl): improve error message for reserved keywords used as unquoted values
- test(parsers): update exception message assertions for new standardized format
- feat(dsl): migrate DSL parsers to structured exception positions
- feat(fql): migrate FQL parsers to structured exception positions
- feat(parsers): add structured Position/Expected/Found to internal parser exceptions
- refactor(validation): improve validation error formatting and HAVING aggregate messaging
- feat(config): support per-request QuerySyntax and DisablePaging overrides
- feat(dsl): support AND/OR logical keywords in filter expressions
- fix(parser): correct OR logical operator in FqlHavingAstParser
- Merge branch 'main' of https://github.com/peterjohncasasola/FlexQuery.NET
- merge feature branch having-nested-condition to main branch (#12)
- Merge branch 'main' into feature/having-nested-condition
- docs(tests): clarify AllowedIncludes as validation-only and add regression tests
- fix(projection): preserve nested select aliases and allow mixed flat/nested syntax