Condividi tramite


Viste di database nell'API GraphQL

Le viste sono supportate come alternative alle tabelle in Data API Builder (DAB). Una vista può essere esposta tramite endpoint GraphQL con una configurazione minima.

Configurazione

Per esporre una visualizzazione:

  • Impostare source.type su "view"
  • Impostare source.object sul nome completo della visualizzazione
  • Per identificare una riga in modo univoco, definire key-fields
  • Concedere l'autorizzazione usando l'azione "read" (e facoltativamente "create", "update", "delete" se la visualizzazione è aggiornabile)

Esempio di CLI

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

Esempio di configurazione

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

Comportamento di GraphQL

  • Visualizzazione visualizzata come tipo GraphQL
  • Le interrogazioni sono sempre supportate
  • Le mutazioni sono supportate solo se la vista è aggiornabile
  • Segue la struttura dello schema DAB GraphQL standard

Query di esempio

{
  bookDetails {
    items {
      id
      title
      authorName
    }
  }
}

Autorizzazioni

  • Usare l'azione read per le visualizzazioni di sola lettura
  • Usare create, updatee delete solo se la vista è aggiornabile

Limitazioni

  • key-fields sono obbligatori
  • Le visualizzazioni non supportano le relazioni
  • L'impaginazione, il filtro e l'ordinamento sono supportati se la vista si comporta come una tabella