Freigeben über


GraphQL-Endpunkte aufrufen

Mit GraphQL-Endpunkten im Daten-API-Generator (DAB) können Sie Daten präzise abfragen und ändern. Jede Abfrage definiert genau, welche Felder Sie benötigen, und unterstützt Argumente zum Filtern, Sortieren und zur Paginierung der Ergebnisse.

Standardmäßig hosten DAB ihren GraphQL-Endpunkt unter:

https://{base_url}/graphql

Entitäten, die über die Konfiguration verfügbar gemacht werden, werden automatisch im GraphQL-Schema enthalten. Wenn Sie beispielsweise über books und authors Entitäten verfügen, werden beide als Stammfelder im Schema angezeigt.

Hinweis

Verwenden Sie einen beliebigen modernen GraphQL-Client oder eine IDE (wie Apollo, Insomnia oder VS Code GraphQL), um das Schema und die Autovervollständigung zu untersuchen.

Im Daten-API-Generator unterstützte Schlüsselwörter

Begriff GraphQL Zweck
Projection Elemente Auswählen der zurückzugebenden Felder
Filterung Filter Einschränken von Zeilen nach Bedingung
Sortieren orderBy Definieren der Sortierreihenfolge
Seitenformat first Einschränken der Elemente pro Seite
Fortsetzung nach Weiter von der letzten Seite

Grundstruktur

Jede GraphQL-Abfrage beginnt mit einem Stammfeld, das eine Entität darstellt.

{
  books {
    items {
      id
      title
      price
    }
  }
}

Das Ergebnis ist ein JSON-Objekt mit derselben Form wie ihr Auswahlsatz:

{
  "data": {
    "books": {
      "items": [
        { "id": 1, "title": "Dune", "price": 20 },
        { "id": 2, "title": "Foundation", "price": 18 }
      ]
    }
  }
}

Hinweis

Standardmäßig gibt DAB bis zu 100 Elemente pro Abfrage zurück, sofern nicht anders konfiguriert (runtime.pagination.default-page-size).

Abfragetypen

Jede Entität unterstützt zwei Standardstammabfragen:

Query BESCHREIBUNG
entity_by_pk Gibt einen Datensatz anhand des Primärschlüssels zurück.
entities Gibt eine Liste von Datensätzen zurück, die Mit Filtern übereinstimmen

Beispiel für die Rückgabe eines Datensatzes:

{
  book_by_pk(id: 1010) {
    title
    year
  }
}

Beispiel, in dem viele zurückgegeben werden:

{
  books {
    items {
      id
      title
    }
  }
}

Filterergebnisse

Verwenden Sie das filter Argument, um einzuschränken, welche Datensätze zurückgegeben werden.

{
  books(filter: { title: { contains: "Foundation" } }) {
    items { id title }
  }
}

Diese Abfrage gibt alle Bücher zurück, deren Titel "Foundation" enthält.

Filter können Vergleiche mit logischen Operatoren kombinieren:

{
  authors(filter: {
    or: [
      { first_name: { eq: "Isaac" } }
      { last_name: { eq: "Asimov" } }
    ]
  }) {
    items { first_name last_name }
  }
}

Weitere Informationen finden Sie in der Filterargumentreferenz für unterstützte Operatoren wie eq, neq, lt, lte, und isNull.

Sortieren von Ergebnissen

Das orderBy Argument definiert, wie Datensätze sortiert werden.

{
  books(orderBy: { year: DESC, title: ASC }) {
    items { id title year }
  }
}

Dies gibt Bücher zurück, die nach year absteigend sortiert sind, dann nach title.

Weitere Informationen finden Sie in der OrderBy-Argumentreferenz .

Einschränken der Ergebnisse

Das first Argument begrenzt, wie viele Datensätze in einer einzelnen Anforderung zurückgegeben werden.

{
  books(first: 5) {
    items { id title }
  }
}

Dadurch werden die ersten fünf Bücher zurückgegeben, die standardmäßig nach Primärschlüssel sortiert sind. Sie können auch first: -1 verwenden, um die konfigurierte maximale Seitengröße anzufordern.

Weitere Informationen finden Sie in der ersten Argumentreferenz.

Fortlaufende Ergebnisse

Verwenden Sie zum Abrufen der nächsten Seite das after Argument mit dem Cursor aus der vorherigen Abfrage.

{
  books(first: 5, after: "eyJpZCI6NX0=") {
    items { id title }
  }
}

Das after Token kennzeichnet, wo die vorherige Seite beendet wurde. Weitere Informationen siehe After Argument Reference.

Feldauswahl (Projektion)

In GraphQL wählen Sie genau aus, welche Felder in der Antwort angezeigt werden. Es gibt keine Wildcard wie SELECT *. Fordern Sie nur das an, was Sie benötigen.

{
  books {
    items { id title price }
  }
}

Sie können auch Aliase verwenden, um Felder in der Antwort umzubenennen:

{
  books {
    items {
      bookTitle: title
      cost: price
    }
  }
}

Ausführliche Informationen finden Sie in der Feldprojektionsreferenz.