Skip to content

Repository files navigation

OpenApiQuery

Disclaimer: This project is still in a very early proof-of-concept phase and not ready for any production.

OpenApiQuery is a library inspired by OData to provide an easy way of interacting with your REST API resources. It adopts from OData parts of the query syntax as described in the OData specification OData Version 4.01. Part 2: URL Conventions

The ultimate goal is to support a full OData alike experience with using an OpenAPI specification as replacement for the EDM where needed. Hence the name OpenApiQuery.

Framework features

FeatureDescriptionStatus
$selectLimit the returned propertiesSupported
$filterFilter result entitiesSupported
$expandInclude related navigation propertiesSupported
$expand($filter)Filter related navigation properties which are includedSupported
$expand($expand)Filter related navigation properties which are includedSupported
$expand($orderby)Apply ordering to the expanded navigation propertiesSupported
$expand($skip)Apply paging to the expanded navigation propertiesSupported
$expand($top)Apply paging to the expanded navigation propertiesSupported
$skipSkip N elements in the result setSupported
$topSelect the top N elements in the result setSupported
$countProvide the total count of items in the data source (with filters applied)Supported
Delta<T>Accept a partial entitySupported
SingleResult<T>Return a single entity with select and expand capabilitiesSupported
Open TypesExtend your entities with any dynamic propertyNot yet supported
Data AggregationSee OData Extension for Data Aggregation Version 4.0Not yet supported

OData URL Conventions Compatibility

FeatureStatus
3. Service Root URLNot planned
4. Resource PathAll not planned unless mentioned below
4.8 Addressing the Count of a CollectionNot yet supported (only planned for system query options)
4.11 Addressing Derived TypesNot yet supported (only planned for system query options)
5. Query Options-
5.1. System Query OptionsPartially Supported
5.1.1 Common Expression Syntax-
5.1.1.1.1 EqualsSupported
5.1.1.1.2 Not EqualsSupported
5.1.1.1.3 Greater ThanSupported
5.1.1.1.3 Greater ThanSupported
5.1.1.1.4 Greater Than or EqualSupported
5.1.1.1.5 Less ThanSupported
5.1.1.1.6 Less Than or EqualSupported
5.1.1.1.7 AndSupported
5.1.1.1.8 OrSupported
5.1.1.1.9 NotSupported
5.1.1.1.10 HasSupported
5.1.1.1.11 InSupported
5.1.1.2.1 AdditionSupported
5.1.1.2.2 SubtractionSupported
5.1.1.2.3 NegationSupported
5.1.1.2.4 MultiplicationSupported
5.1.1.2.5 DivisionSupported
5.1.1.2.6 ModuloSupported
5.1.1.3 GroupingSupported
5.1.1.5.1 concatSupported
5.1.1.5.2 containsPartially Supported (no collection contains collection)
5.1.1.5.3 endswithPartially Supported (string)
5.1.1.5.4 indexofPartially Supported (string)
5.1.1.5.5 lengthSupported
5.1.1.5.6 startswithPartially Supported (string)
5.1.1.5.7 substringSupported
5.1.1.6 Collection FunctionsNot planned (no LINQ equivalent)
5.1.1.7 String FunctionsPartially Supported (tolower, toupper, trim)
5.1.1.8 Date and Time FunctionsSupported
5.1.1.9 Arithmetic FunctionsSupported
5.1.1.10 Type FunctionsPartially Supported (simple casts)
5.1.1.11 Geo FunctionsNot yet supported
5.1.1.12 Conditional FunctionsNot planned
5.1.1.13 Lambda OperatorsNot planned
5.1.1.14.1 Primitive LiteralsPartially Supported (null, bool, int, double, single, string, dateTimeOffset, guid, long
5.1.1.14.2 Complex and Collection LiteralsPartially Supported (no aliases)
5.1.1.14.3 nullSupported
5.1.1.14.4 $itNot yet supported
5.1.1.14.5 $rootNot yet supported
5.1.1.14.6 $thisNot yet supported
5.1.1.15 Path ExpressionsSupported
5.1.2 System Query Option $filterSupported
5.1.3 System Query Option $expandSupported
5.1.4 System Query Option $selectSupported
5.1.5 System Query Option $orderbySupported
5.1.6 System Query Options $top and $skipSupported
5.1.7 System Query Option $countSupported
5.1.8 System Query Option $searchNot planned
5.1.9 System Query Option $formatNot planned
5.1.10 System Query Option $computeNot planned
5.1.11 System Query Option $indexNot planned
5.1.12 System Query Option $schemaversionNot planned
5.2. Custom Query OptionsSupported
5.3. Parameter AliasesNot yet supported

About

OData based query language for your ASP.net core APIs

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages