Skip to content

Schemio - Framework to allow fetching aggregated data. Allows partial fetches by object graph using schema paths (supports XPath & JSONPath.)

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

CodeShayk/Schemio

Repository files navigation

ninja Schemio v2.0

License: MIT Master-Build GitHub Release Master-CodeQL .Net 9.0

Nuget Packages

Package Latest Details
Schemio.Core NuGet version Provides core functionality to configure nested queries and transformers. With ability to map schema paths (XPath/JSONPath) to entity's object graph. No QueryEngine provided and requires implementing IQueryEngine to execute IQuery instances.
Schemio.SQL NuGet version Provides schemio with query engine using Dapper to execute SQL queries.
Schemio.EntityFramework NuGet version Provides schemio with Entity Framework query engine to execute queries using DbContext.
Schemio.API NuGet version Provides schemio with Web Api query engine to execute apis using HttpClient.

Concept

What is Schemio?

Schemio is a data aggregation framework using queries that can target different data platforms.

Key benefits:

  • allows fetching aggregated data from heterogeneous data storages. You could combine queries targetting different data platforms (example. SQL, API, Cache) to return an aggregated data entity.
  • allows selectively fetching only parts of the aggregated data entity. You could retrieve an aggregated data entity with only sections of its object graph populated with data depending upon the schema paths passed with the request.

When to use Schemio?

Schemio is perfect fit for many use cases. Few examples that require the service tier to dynamically fetch aggregated data with high performance, availability and scalability are

  • Aggregated APIs
  • Data Reporting
  • Document Generation (with templated data)
  • Content Management Systems
  • Many more

Getting Started?

i. Installation

Install the latest nuget package as appropriate for Core, Web API, SQL using Dapper or EntityFramework using commands below.

Scemio.Core - for installing schemio for bespoke implementation of query engine.

NuGet\Install-Package Schemio.Core

Schemio.SQL - for installing schemio for SQL with Dapper engine.

NuGet\Install-Package Schemio.SQL 

Schemio.EntityFramework - for installing schemio for SQL with EntityFramework engine.

NuGet\Install-Package Schemio.EntityFramework

Schemio.API - for installing schemio for Web API with HttpClient engine.

NuGet\Install-Package Schemio.API

ii. Developer Guide

Please see Developer Guide for details on how to implement schemio in your project.

Support

If you are having problems, please let me know by raising a new issue.

License

This project is licensed with the MIT license.

Version History

The main branch is now on .NET 9.0. The following previous versions are available:

Version Release Notes Developer Guide
v2.0.0 Notes Guide
v1.0.0 Notes Guide

Credits

Thank you for reading. Please fork, explore, contribute and report. Happy Coding !! :)