Freigeben über


Abfragen mehrerer Datenquellen in der Fabric-API für GraphQL

In der Fabric-API für GraphQL können Sie viele Datenquellen über ein einzelnes API-Element verfügbar machen. Mit diesem Feature können Sie eine einzelne Abfrage ausgeben, die Daten aus mehreren Datenquellen abruft.

Eine Abfrage mit mehreren Datenquellen ist eine Abfolge von Abfragen, die Vorgänge für verschiedene Datenquellen verwenden.

Diese Funktionalität kann die Leistung Ihrer Anwendungen verbessern, indem die Anzahl der Roundtrips zwischen Ihrer Anwendung und der API für GraphQL reduziert wird.

Hinweis

Eine Anforderung mit mehreren Datenquellen fächert einzelne Anforderungen an Datenquellen ab. Sie können keine Beziehungen zwischen Typen erstellen, die mehrere Datenquellen umfassen. Darüber hinaus gibt es keine Garantien für die Reihenfolge, in der die einzelnen Anforderungen ausgeführt werden.

Abfragebeispiel

Das folgende Beispiel zeigt eine Abfrage, die sich über die Datenquellen ContosoSales und ContosoInventory erstreckt:

query {
  customers (first: 1) {
    items {
      FirstName
      LastName
    }
  }
  inventories (first: 1) {
    items {
      Name
    }
  }
}

Diese Anforderung ruft den ersten Knoten aus der Kundenabfrage ab, der von der ContosoSales-Datenquelle abgeleitet wird, und den ersten Knoten aus der Inventarabfrage, der von der ContosoInventory-Datenquelle abgeleitet wird.

Die Ausgabe für die Anfrage ist:

{
  "data": {
    "customers": {
      "items": [
        {
          "FirstName": "Orlando",
          "LastName": "Gee"
        }
      ]
    },
    "inventories": {
      "items": [
        {
          "Name": "AWC Logo Cap"
        }
      ]
    }
  }
}

Es gibt zwei Teile der Ausgabe: Der erste Abschnitt, Daten, enthält die Ausgabe der Kundenabfrage. Der zweite Abschnitt", Inventare, enthält die Ausgabe der Inventarabfrage.

So sieht die Abfrageansicht beim Ausführen dieser Anforderung wie folgt aus:

Screenshot des Editorbildschirms mit einem Beispiel für eine Abfrage, die sich über zwei Datenquellen erstreckt.