Vistas de base de datos en GraphQL API

Las vistas se admiten como alternativas a las tablas de Data API Builder (DAB). Se puede exponer una vista mediante puntos de enlace GraphQL con una configuración mínima.

Configuración

Para exponer una vista:

  • Establezca source.type en "view".
  • Establézcalo source.object en el nombre completo de la vista.
  • Para identificar una fila de forma única, defina key-fields
  • Conceder permiso mediante la "read" acción (y, opcionalmente"create", , "update""delete" si la vista es actualizable)

Ejemplo de la CLI

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

Ejemplo de configuración

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

Comportamiento de GraphQL

  • La vista se presenta como un tipo GraphQL
  • Las consultas siempre están admitidas
  • Las mutaciones solo se admiten si la vista es actualizable.
  • Sigue la estructura del esquema estándar de GraphQL de DAB

Ejemplo de consulta

{
  bookDetails {
    items {
      id
      title
      authorName
    }
  }
}

Permisos

  • Uso de la read acción para vistas de solo lectura
  • Use create, updatey delete solo si la vista es actualizable

Limitaciones

  • key-fields son obligatorios
  • Las vistas no admiten relaciones
  • Se admiten la paginación, el filtrado y la ordenación si la vista se comporta como una tabla.