AutoQuery Data

AutoQuery Data is a new implementation that closely follows the dev model you're used to with AutoQuery RDBMS where any experience gained in creating RDBMS AutoQuery Services previously are now also applicable to Querying alternative data sources as well.

Getting Started

The AutoQuery Data Feature is enabled by registering:

Plugins.Add(new AutoQueryDataFeature { MaxLimit = 100 });

Learn Once, Query Everywhere

All features from AutoQuery RDBMS except for the RDBMS-specific Joining Tables and Raw SQL Filters features also have an equivalent in AutoQuery Data as well.

Like AutoQuery you can declaratively create AutoQuery Data Services using just Request DTO's but instead of inheriting from QueryDb<T> you'd instead inherit from QueryData<T>, e.g:

//AutoQuery RDBMS
public class QueryCustomers : QueryDb<Customer> {}

//AutoQuery Data - Multiple / Open Data Sources 
public class QueryCustomers : QueryData<Customer> {}

The API to call and consume both RDBMS AutoQuery and AutoQuery Data Services are indistinguishable to external clients where both are queried using the same implicit and explicit conventions and both return the same QueryResponse<T> Response DTO.

Use AutoQuery Viewer

A direct result of this means you can reuse AutoQuery Viewer to access a rich auto UI for querying all AutoQuery implementations together in the same UI, whether queries are served from an RDBMS or an alternative data source.

AutoQuery Data Sources

AutoQuery Data supports an Open Data provider model requiring an extra piece of configuration Services need to function - the Data Source that it will query. Data Sources are registered with the AutoQueryDataFeature plugin by calling using its fluent AddDataSource() API to register all Data Sources you want available to query.

At launch there are 3 different data sources that are available - all of which are accessible as extension methods on the QueryDataContext parameter for easy discoverability:

Plugins.Add(new AutoQueryDataFeature()
    .AddDataSource(ctx => ctx.MemorySource(...))
    .AddDataSource(ctx => ctx.ServiceSource(...))
    .AddDataSource(ctx => ctx.DynamoDBSource(...))
);

AutoQuery Data Open Provider model supports querying of multiple data source back-ends. The 3 data source providers available include:

  • AutoQuery Memory - for querying static or dynamic in-memory .NET collections, some example uses include showing querying a flat-file .csv file and querying a throttled 3rd Party API with it's built-in configurable caching.
  • AutoQuery Service - a step higher than MemorySource where you can decorate the response of existing Services with AutoQuery's rich querying capabilities.
  • AutoQuery DynamoDB - adds rich querying capabilities over an AWS DynamoDB Table, offering a leap of greater productivity than constructing DynamoDB queries manually.