An Aspire component leveraging the Data API Builder container.
Install
| Product | Versions |
|---|---|
| .NET |
README
CommunityToolkit.Hosting.Azure.DataApiBuilder
Overview
This .NET Aspire Integration runs Data API builder in a container. Data API builder generates secure, feature-rich REST and GraphQL endpoints for Tables, Views and Stored Procedures performing CRUD (Create, Read, Update, Delete, Execute) operations against Azure SQL Database, SQL Server, PostgreSQL, MySQL and Azure CosmosDB.
Usage
Example 1: Single data source
var builder = DistributedApplication.CreateBuilder(args);
var sqlDatabase = builder
.AddSqlServer("your-server-name")
.AddDatabase("your-database-name");
var dab = builder.AddDataAPIBuilder("dab")
.WithReference(sqlDatabase)
.WaitFor(sqlDatabase);
var app = builder
.AddProject<Projects.Client>()
.WithReference(dab);
builder.Build().Run();
Example 2: Multiple data sources
var builder = DistributedApplication.CreateBuilder(args);
var sqlDatabase1 = builder
.AddSqlServer("your-server-name")
.AddDatabase("your-database-name");
var sqlDatabase2 = builder
.AddSqlServer("your-server-name")
.AddDatabase("your-database-name");
var dab = builder.AddDataAPIBuilder("dab",
"./dab-config-1.json",
"./dab-config-2.json")
.WithReference(sqlDatabase1)
.WithReference(sqlDatabase2)
.WaitFor(sqlDatabase1)
.WaitFor(sqlDatabase2);
var app = builder
.AddProject<Projects.Client>()
.WithReference(dab);
builder.Build().Run();
Note: All files are mounted/copied to the same
/Appfolder.
Example 3: Cosmos DB and a schema file
var builder = DistributedApplication.CreateBuilder(args);
var cosmosdb = builder
.AddAzureCosmosDB("myNewCosmosAccountName")
.AddDatabase("myCosmosDatabaseName");
var dab = builder.AddDataAPIBuilder("dab",
"./dab-config.json",
"./schema.graphql")
.WithReference(cosmosdb)
.WaitFor(cosmosdb);
var app = builder
.AddProject<Projects.Client>()
.WithReference(dab);
builder.Build().Run();
Example 4: Connection string-only
var builder = DistributedApplication.CreateBuilder(args);
var sqlDatabase = builder
.AddConnectionString("your-cs-name");
var dab = builder.AddDataAPIBuilder("dab")
.WithReference(sqlDatabase);
var app = builder
.AddProject<Projects.Client>()
.WithReference(dab);
builder.Build().Run();
Configuration
name- The name of the resource.port- The optional port number for the Data API builder container. Defaults torandom.configFilePaths- Opiotnal paths to the config/schema file(s) for Data API builder. Default is./dab-config.json.
Data API builder Container Image Configuration
You can specify custom registry/image/tag values by using the WithImageRegistry/WithImage/WithImageTag methods:
var dab = builder.AddDataAPIBuilder("dab")
.WithImageRegistry("mcr.microsoft.com")
.WithImage("azure-databases/data-api-builder")
.WithImageTag("latest");
Known Issues
The current imlpementation of the Data API builder .NET Aspire integration does not support HTTPS endpoints. However, this is only a dev-time consideration. Service discovery when published can use HTTPS without any problems.
Changes from Previous Version
Adoption Assessment
A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.