Freigeben über


Datenbankansichten in der GraphQL-API

Ansichten werden als Alternativen zu Tabellen im Daten-API-Generator (DAB) unterstützt. Eine Ansicht kann über GraphQL-Endpunkte mit minimaler Konfiguration verfügbar gemacht werden.

Konfiguration

So machen Sie eine Ansicht verfügbar:

  • Legen Sie source.type auf "view" fest.
  • Den vollqualifizierten Ansichtsnamen auf source.object festlegen.
  • Um eine Zeile eindeutig zu identifizieren, definieren Sie key-fields
  • Erteilen der Berechtigung mithilfe der "read" Aktion (und optional "create""update", "delete" wenn die Ansicht aktualisierbar ist)

CLI-Beispiel

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

Konfigurationsbeispiel

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

GraphQL-Verhalten

  • Ansicht wird als GraphQL-Typ angezeigt
  • Abfragen werden immer unterstützt.
  • Mutationen werden nur unterstützt, wenn die Ansicht aktualisierbar ist
  • Folgt der standardmäßigen DAB GraphQL-Schemastruktur

Beispielabfrage

{
  bookDetails {
    items {
      id
      title
      authorName
    }
  }
}

Erlaubnisse

  • Verwenden Sie die read Aktion für schreibgeschützte Ansichten
  • Verwenden Sie create, updateund delete nur, wenn die Ansicht aktualisierbar ist

Einschränkungen

  • key-fields sind erforderlich
  • Ansichten unterstützen keine Beziehungen
  • Paginierung, Filterung und Sortierung werden unterstützt, wenn sich die Ansicht wie eine Tabelle verhält