One of my clients had REST APIs functioning but needed a way to query external systems dynamically and combine with other data. After discussing we opted for a GraphQL “Supergraph” federated model.
The idea is, depending on the domain of data they need, the query will auto-adapt itself and pick the correct GraphQL subgraph and return the federated result.
I developed a GraphQL API model that integrates with SQL Server databases using C# .NET Entity Framework. Of course, I prepared a database and schema that have the requirements for such an API model to work e.g. normalized tables, indexes for performance and foreign keys to establish relationships and integrity.
The result was a neat API that has multiple entry points. For instance, you can query Internet Sales, apply filters to it based on a date range, project a subset of columns and join with the Products query.
Joining, filtering and Selecting are now easier than ever, as if you are writing a SQL query, but you are not, and the performance was as good as the source queries.
The technologies I used for this project:
Azure Function Apps
Azure DevOps (Repos, Build and release pipelines)
C#
.NET Entity Framework
SQL Server Database
Features & Use cases:
Dynamic Querying (like SQL developers but simpler)
Navigation between tables
Filtering, joining, selecting a subset of data points and columns.
Consistent relationships in an API based on a simple data model.