Source:
examples/data-api-builder/README.md— this page is rendered live from that file.
Data API Builder — Quick Start¶
Azure Data API Builder (DAB) turns your Azure SQL database into instant REST and GraphQL APIs with zero application code.
graph LR
SQL[(Azure SQL)] --> DAB[Data API Builder]
DAB --> REST["/api/products"]
DAB --> GQL["/graphql"]
REST --> APIM[API Management]
GQL --> APIM
APIM --> FE[Frontend SWA]
APIM --> PBI[Power BI]
APIM --> EXT[External Apps] Prerequisites¶
| Tool | Version | Purpose |
|---|---|---|
| Azure CLI | 2.50+ | Deploy infrastructure |
| SQL Server / Azure SQL | 2019+ | Database engine |
| Data API Builder CLI | 1.1+ | Local development |
| Node.js | 18+ | Frontend tooling (optional) |
Quick Start¶
1. Deploy Infrastructure¶
az deployment group create \
--resource-group rg-csa-dab-dev \
--template-file ../../deploy/bicep/DLZ/modules/data-api-builder.bicep \
--parameters ../../deploy/bicep/DLZ/modules/data-api-builder.dev.bicepparam \
--parameters sqlAdminPassword='<YOUR_PASSWORD>'
2. Create the Database Schema¶
sqlcmd -S <server>.database.windows.net -d csa-dab-db-dev \
-U sqladmin -P '<PASSWORD>' \
-i sql/setup.sql
3. Run DAB Locally¶
# Install DAB CLI
dotnet tool install -g Microsoft.DataApiBuilder
# Set connection string
export SQL_CONNECTION_STRING="Server=localhost;Database=dab;User Id=sa;Password=<PWD>;TrustServerCertificate=true"
# Start DAB
dab start --config dab-config.json
4. Test the API¶
# REST
curl http://localhost:5000/api/products | jq
# GraphQL
curl -X POST http://localhost:5000/graphql \
-H 'Content-Type: application/json' \
-d '{"query":"{ dataProducts { items { id name domain quality_score } } }"}'
5. Serve the Frontend¶
# Using SWA CLI for local dev
npx @azure/static-web-apps-cli start frontend/ --data-api-location http://localhost:5000
Directory Structure¶
examples/data-api-builder/
├── dab-config.json # DAB configuration (entities, permissions, relationships)
├── sql/
│ └── setup.sql # Database schema + seed data
├── frontend/
│ ├── index.html # Dashboard
│ ├── products.html # Product catalog
│ ├── explorer.html # GraphQL explorer
│ ├── styles.css # Dark theme styles
│ ├── app.js # API client + rendering
│ └── staticwebapp.config.json # SWA routing & auth
├── api-examples/
│ ├── rest-examples.http # VS Code REST Client examples
│ └── graphql-examples.graphql # GraphQL query/mutation examples
└── README.md # This file
Key Configuration¶
The dab-config.json defines:
- 5 entities: DataProducts, QualityMetrics, AccessGrants, Domains, DataLineage
- 2 stored procedures: sp_domain_stats, sp_quality_trend
- Role-based permissions: anonymous (read), authenticated (CRUD), admin (full)
- Relationships: products → quality metrics (1:many), products → domains (many:1)
- Policy filters: anonymous users cannot see draft products; authenticated users see only their own access grants
Full Tutorial¶
See docs/tutorials/11-data-api-builder/README.md for the complete 90-minute walkthrough.