Edit

Share via


Using views in Data API builder

Views are supported as alternatives to tables in DAB. A view can be exposed through REST or GraphQL endpoints with minimal configuration.

Configuration

To expose a view:

  • Set source.type to "view"
  • Set source.object to the fully qualified view name
  • Define key-fields to identify a row uniquely
  • Grant permission using the "read" action (and optionally "create", "update", "delete" if the view is updatable)

CLI example

dab add BookDetail \
  --source dbo.vw_books_details \
  --source.type "view" \
  --source.key-fields "id" \
  --permissions "anonymous:read"

Configuration example

"BookDetail": {
  "source": {
    "type": "view",
    "object": "dbo.vw_books_details",
    "key-fields": [ "id" ]
  },
  "permissions": [
    {
      "role": "anonymous",
      "actions": [ "read" ]
    }
  ]
}

REST support

  • Supports all REST verbs: GET, POST, PUT, PATCH, DELETE
  • Default behavior is identical to table-backed entities
  • Operations succeed only if the view is updatable and appropriate permissions are set

Example request

GET /api/BookDetail/42

Returns the row from vw_books_details with id = 42.

GraphQL support

  • View appears as a GraphQL type
  • Queries are always supported
  • Mutations are supported only if the view is updatable
  • Follows standard DAB GraphQL schema structure

Permissions

  • Use the read action for readonly views
  • Use create, update, and delete only if the view is updatable

Limitations

  • key-fields are required
  • Views do not support relationships
  • Pagination, filtering, and sorting are supported if the view behaves like a table