Vues de base de données dans l’API GraphQL

Les vues sont prises en charge comme alternatives aux tables dans le générateur d’API de données (DAB). Une vue peut être exposée via des points de terminaison GraphQL avec une configuration minimale.

Paramétrage

Pour exposer une vue :

  • Paramétrez source.type sur "view"
  • Définir source.object sur le nom complet de la vue
  • Pour identifier une ligne de manière unique, définissez key-fields
  • Accorder l’autorisation à l’aide de l’action "read" (et éventuellement "create", "update"si "delete" la vue est modifiable)

Exemple CLI

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

Exemple de configuration

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

Comportement GraphQL

  • L’affichage s’affiche en tant que type GraphQL
  • Les requêtes sont toujours prises en charge
  • Les mutations sont prises en charge uniquement si la vue est modifiable
  • Suit la structure de schéma DAB GraphQL standard

Exemple de requête

{
  bookDetails {
    items {
      id
      title
      authorName
    }
  }
}

Permissions

  • Utiliser l’action read pour les vues en lecture seule
  • Utiliser create, updateet delete uniquement si la vue est mise à jour

Limites

  • key-fields sont obligatoires
  • Les vues ne prennent pas en charge les relations
  • La pagination, le filtrage et le tri sont pris en charge si la vue se comporte comme une table