Skip to content

Commit 1c3df18

Browse files
committed
Update
1 parent ae56f51 commit 1c3df18

17 files changed

Lines changed: 114 additions & 210 deletions

learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/11-summary.yml renamed to learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/10-summary.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
### YamlMime:ModuleUnit
2-
uid: learn.integrate-sql-solutions-azure-services.11-summary
2+
uid: learn.integrate-sql-solutions-azure-services.10-summary
33
title: Summary
44
metadata:
55
title: Summary
@@ -10,4 +10,4 @@ metadata:
1010
ms.topic: unit
1111
durationInMinutes: 2
1212
content: |
13-
[!include[](includes/11-summary.md)]
13+
[!include[](includes/10-summary.md)]

learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/4-configure-rest-graphql-endpoints.yml

Lines changed: 0 additions & 13 deletions
This file was deleted.

learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/5-expose-database-objects-stored-procedures-views.yml renamed to learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/4-expose-database-objects-stored-procedures-views.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
### YamlMime:ModuleUnit
2-
uid: learn.integrate-sql-solutions-azure-services.5-expose-database-objects-stored-procedures-views
2+
uid: learn.integrate-sql-solutions-azure-services.4-expose-database-objects-stored-procedures-views
33
title: Expose database objects, stored procedures, and views
44
metadata:
55
title: Expose database objects, stored procedures, and views
@@ -10,4 +10,4 @@ metadata:
1010
ms.topic: unit
1111
durationInMinutes: 12
1212
content: |
13-
[!include[](includes/5-expose-database-objects-stored-procedures-views.md)]
13+
[!include[](includes/4-expose-database-objects-stored-procedures-views.md)]

learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/6-deploy-data-api-builder-azure-services.yml renamed to learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/5-deploy-data-api-builder-azure-services.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
### YamlMime:ModuleUnit
2-
uid: learn.integrate-sql-solutions-azure-services.6-deploy-data-api-builder-azure-services
2+
uid: learn.integrate-sql-solutions-azure-services.5-deploy-data-api-builder-azure-services
33
title: Deploy Data API Builder to Azure services
44
metadata:
55
title: Deploy Data API Builder to Azure services
@@ -10,4 +10,4 @@ metadata:
1010
ms.topic: unit
1111
durationInMinutes: 10
1212
content: |
13-
[!include[](includes/6-deploy-data-api-builder-azure-services.md)]
13+
[!include[](includes/5-deploy-data-api-builder-azure-services.md)]

learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/7-recommend-azure-monitor-configurations.yml renamed to learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/6-recommend-azure-monitor-configurations.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
### YamlMime:ModuleUnit
2-
uid: learn.integrate-sql-solutions-azure-services.7-recommend-azure-monitor-configurations
2+
uid: learn.integrate-sql-solutions-azure-services.6-recommend-azure-monitor-configurations
33
title: Recommend Azure Monitor configurations
44
metadata:
55
title: Recommend Azure Monitor configurations
@@ -10,4 +10,4 @@ metadata:
1010
ms.topic: unit
1111
durationInMinutes: 10
1212
content: |
13-
[!include[](includes/7-recommend-azure-monitor-configurations.md)]
13+
[!include[](includes/6-recommend-azure-monitor-configurations.md)]

learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/8-handle-changes-event-driven-patterns.yml renamed to learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/7-handle-changes-event-driven-patterns.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
### YamlMime:ModuleUnit
2-
uid: learn.integrate-sql-solutions-azure-services.8-handle-changes-event-driven-patterns
2+
uid: learn.integrate-sql-solutions-azure-services.7-handle-changes-event-driven-patterns
33
title: Handle changes with event-driven patterns
44
metadata:
55
title: Handle changes with event-driven patterns
@@ -10,4 +10,4 @@ metadata:
1010
ms.topic: unit
1111
durationInMinutes: 12
1212
content: |
13-
[!include[](includes/8-handle-changes-event-driven-patterns.md)]
13+
[!include[](includes/7-handle-changes-event-driven-patterns.md)]

learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/9-exercise-data-api-builder.yml renamed to learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/8-exercise-data-api-builder.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
### YamlMime:ModuleUnit
2-
uid: learn.integrate-sql-solutions-azure-services.9-exercise-data-api-builder
2+
uid: learn.integrate-sql-solutions-azure-services.8-exercise-data-api-builder
33
title: Exercise - Configure Data API Builder for a product catalog
44
metadata:
55
title: Exercise - Configure Data API Builder for a product catalog
@@ -10,4 +10,4 @@ metadata:
1010
ms.topic: unit
1111
durationInMinutes: 30
1212
content: |
13-
[!include[](includes/9-exercise-data-api-builder.md)]
13+
[!include[](includes/8-exercise-data-api-builder.md)]

learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/10-knowledge-check.yml renamed to learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/9-knowledge-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
### YamlMime:ModuleUnit
2-
uid: learn.integrate-sql-solutions-azure-services.10-knowledge-check
2+
uid: learn.integrate-sql-solutions-azure-services.9-knowledge-check
33
title: Module assessment
44
metadata:
55
ai_generated_module_assessment: true

learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/includes/11-summary.md renamed to learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/includes/10-summary.md

File renamed without changes.

learn-pr/wwl-data-ai/integrate-sql-solutions-azure-services/includes/3-define-entities-rest-graphql.md

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,3 +216,97 @@ query {
216216
```
217217

218218
The `cardinality` property indicates whether the relationship returns one item or many. Use `one` for many-to-one relationships (product to category) and `many` for one-to-many relationships (category to products).
219+
220+
## Understand REST endpoint generation
221+
222+
When you define an entity, DAB automatically creates REST endpoints following standard conventions. Each entity gets a base URL path, and HTTP verbs map to CRUD operations.
223+
224+
For an entity named `Product` with the default configuration:
225+
226+
| HTTP Method | URL Pattern | Operation |
227+
|-------------|-------------|-----------|
228+
| GET | `/api/Product` | List all products (paginated) |
229+
| GET | `/api/Product/id/123` | Get product with ID 123 |
230+
| POST | `/api/Product` | Create a new product |
231+
| PUT | `/api/Product/id/123` | Update or create product 123 |
232+
| PATCH | `/api/Product/id/123` | Partially update product 123 |
233+
| DELETE | `/api/Product/id/123` | Delete product 123 |
234+
235+
The `/id/` segment in URLs indicates a primary key lookup. For composite keys, chain multiple key segments: `/api/OrderDetail/orderId/100/productId/50`.
236+
237+
## Customize REST endpoint paths
238+
239+
You can modify the default URL patterns through entity configuration. The `rest` section controls REST-specific behavior:
240+
241+
```json
242+
"Product": {
243+
"source": { "object": "dbo.Products", "type": "table" },
244+
"rest": {
245+
"enabled": true,
246+
"path": "/products",
247+
"methods": {
248+
"get": true,
249+
"post": true,
250+
"put": false,
251+
"patch": true,
252+
"delete": true
253+
}
254+
},
255+
"permissions": [...]
256+
}
257+
```
258+
259+
The `path` property changes the URL from `/api/Product` to `/api/products`. This setting is useful when you want lowercase, plural endpoint names that differ from your entity names.
260+
261+
The `methods` object lets you enable or disable specific HTTP verbs. In this example, `PUT` is disabled, which prevents full record replacement while still allowing `PATCH` for partial updates. This configuration pattern protects against accidental data loss from clients that might send incomplete records.
262+
263+
> [!TIP]
264+
> Disabling methods at the endpoint level provides defense in depth. Even if permissions allow an action, disabling the method prevents it entirely.
265+
266+
## Set up GraphQL endpoint configuration
267+
268+
GraphQL operates through a single endpoint, typically at `/graphql`. All queries, mutations, and subscriptions go through this endpoint, with the request body specifying the operation.
269+
270+
```json
271+
"runtime": {
272+
"graphql": {
273+
"enabled": true,
274+
"path": "/graphql",
275+
"allow-introspection": true,
276+
"depth-limit": 8,
277+
"multiple-mutations": {
278+
"create": { "enabled": true }
279+
}
280+
}
281+
}
282+
```
283+
284+
The `allow-introspection` setting controls whether clients can query the GraphQL schema itself. During development, introspection helps tools like GraphiQL and Apollo Studio understand your API. In production, consider disabling it to hide implementation details.
285+
286+
The `depth-limit` setting prevents overly complex nested queries that could strain your database. A depth of 8 allows reasonable relationship traversal while blocking potential abuse through deeply nested queries.
287+
288+
## Configure GraphQL-specific entity settings
289+
290+
Each entity can have GraphQL-specific configuration that differs from REST:
291+
292+
```json
293+
"Product": {
294+
"source": { "object": "dbo.Products", "type": "table" },
295+
"graphql": {
296+
"enabled": true,
297+
"type": {
298+
"singular": "product",
299+
"plural": "products"
300+
},
301+
"operation": "query"
302+
},
303+
"rest": {
304+
"enabled": true
305+
},
306+
"permissions": [...]
307+
}
308+
```
309+
310+
The `type` property customizes the GraphQL type names. By default, DAB uses the entity name, but you can specify different singular and plural forms.
311+
312+
The `operation` property determines where mutations appear. Use `query` for read-only entities (like views) or `mutation` for entities that support write operations.

0 commit comments

Comments
 (0)