Wie Anfragen gezählt werden
Jedes ausgeführte Root-Operationsfeld ist ein API-Aufruf. Eine GraphQL-Anfrage, die vier Root-Felder abfragt, wird als vier API-Aufrufe abgerechnet, genau so, als hätten Sie vier REST-Anfragen gestellt. Aliase auf Root-Ebene zählen separat, da jeder eine Operation auslöst. Verschachtelte Felder, die aus einer typisierten Antwort ausgewählt werden, verursachen keine zusätzlichen API-Aufrufe.- Ihre bestehenden Plan-Limits gelten unverändert. Das Kontingent Ihres Plans finden Sie unter API-Limits.
- Eine Root-Operation abzufragen, die Sie nicht benötigen, kostet genauso viel wie ihr Aufruf über REST. Die Auswahl der benötigten verschachtelten Antwortfelder verursacht keine zusätzlichen Aufrufe.
- Eine Anfrage kann mittendrin durch ein Rate-Limit gedrosselt werden. Abgeschlossene Root-Felder behalten ihre Daten, und nur die gedrosselten Root-Felder geben Fehler zurück – siehe Teilerfolg.
Abfragelimits
Der Endpunkt erzwingt einige Limits für Struktur und Größe einer Query. Sie sollen verhindern, dass eine einzelne Anfrage unverhältnismäßig viel unserer Kapazität beansprucht, und liegen deutlich über dem, was bei normaler Nutzung erforderlich ist – wenn Sie eines davon erreichen, deutet das meist auf eine versehentlich generierte Query hin und nicht auf einen echten Bedarf.
Eine abgelehnte Query gibt HTTP 400 zurück, wenn Sie
Accept: application/graphql-response+json senden, andernfalls HTTP 200 – in beiden Fällen mit einem errors-Array und ohne data. Siehe Fehler.
API-Aufrufe pro Anfrage
Das wichtigste Limit. Eine einzelne Anfrage kann höchstens 5 API-Aufrufe auslösen. Das obige Beispiel mit vier Root-Feldern ist also in Ordnung, eines mit zwanzig Root-Feldern jedoch nicht. Sobald fünf Aufrufe gestartet wurden, geben weitere Root-Felder einen 429 zurück, der das Limit erläutert; bereits ausgelöste Felder können ihre Daten weiterhin zurückgeben. Wenn Sie mehr benötigen, teilen Sie die Query auf mehrere Anfragen auf. Wenn Sie das für einen legitimen Anwendungsfall regelmäßig tun müssen, kontaktieren Sie uns – das Limit ist zum Start bewusst vorsichtig gewählt, und eine Erhöhung ist unkompliziert, während eine spätere Senkung Integrationen beeinträchtigen würde. Deshalb beginnt es niedrig.Tiefe, Felder und Aliase
Diese werden geprüft, bevor etwas ausgeführt wird. Eine Überschreitung kostet Sie also keinerlei API-Aufrufe. Sie liegen außerdem komfortabel über einer vollständigen Introspection-Query, die etwa 180 Felder und 12 Ebenen tief ist und keine Aliase enthält. Ein Client, der beim Start das gesamte Schema abruft, funktioniert daher normal.Größe des Anfrage-Bodys
64 KB – großzügig für eine Query und viel zu klein für eine Datei. Deshalb können Medien nicht über GraphQL hochgeladen werden – den unterstützten Weg finden Sie unter Medien hochladen.Timeouts
Einer Anfrage stehen insgesamt bis zu 120 Sekunden zur Verfügung. Root-Felder in einer Query können parallel ausgeführt werden, sodass ihre Dauer in der Regel von der langsamsten Abhängigkeit bestimmt wird. Root-Felder in einer Mutation werden nacheinander ausgeführt, sodass sich mehrere langsame Mutations bis zum Timeout summieren können. Beide Formen können dennoch die Last von bis zu fünf parallelen oder aufeinanderfolgenden Aufrufen auf dem Backend erzeugen; teilen Sie bekanntermaßen langsame Vorgänge bei Bedarf auf.Was nicht begrenzt ist
- Das Schema lesen. Introspection erfordert keine Authentifizierung und wird nicht gezählt. Das Durchsuchen der verfügbaren Elemente ist kostenlos; das Ausführen einer Operation nicht.
- Fehlerhafte Queries. Eine Query, die GraphQL ablehnt – unbekanntes Feld, falscher Typ, ungültiger Enum-Wert –, erreicht nie unsere API und wird nie berechnet.