Limits und Kontingente schützen die Google-Infrastruktur vor einem automatisierten Prozess, der die Data Transfer API auf unzulässige Weise verwendet. Übermäßig viele Anfragen von einer API können auf einen harmlosen Tippfehler zurückzuführen sein oder auf ein ineffizient gestaltetes System zurückzuführen sein, das unnötige API-Aufrufe durchführt. Unabhängig von der Ursache ist es für den Gesamtzustand des Google Workspace-Systems erforderlich, Traffic von einer bestimmten Quelle zu blockieren, wenn er ein bestimmtes Niveau erreicht. Es sorgt dafür, dass sich die Aktionen eines Entwicklers nicht negativ auf die gesamte Community auswirken können.
Fehler bei API-Anfragen
Für den unwahrscheinlichen Fall, dass Ihre API-Anfrage fehlschlägt, erhält Ihre Anwendung einen HTTP-Statuscode. Der Statuscode 403
enthält Fehlerinformationen über eine falsche Eingabe und der HTTP-Statuscode 503
enthält Fehlerinformationen, die angeben, welche API-Kontingente überschritten wurden. Mit diesen Antworten kann Ihre benutzerdefinierte Anwendung diese Fehler erkennen und entsprechende Maßnahmen ergreifen.
Anfragen in einem festgelegten Zeitraum abschließen
Wenn Ihre Anfragen in einem bestimmten Zeitraum abgeschlossen werden müssen, senden Sie sie parallel oder verwenden Sie mehrere Threads in Ihrer Java- oder C#-Anwendung. Unterteilen Sie Ihre Anfragen beispielsweise nach Monat oder einem anderen Zeitraum. Versuchen Sie bei Threads, mit 10 Threads zu beginnen, also einem Thread pro Anfrage. Die Thread-Empfehlung hat Nachteile und ist nicht für alle API-Situationen nützlich. Wenn die Anzahl der Anfragen zu hoch wird, treten Kontingentfehler auf.
Zeitbasierte Fehler
Bei allen zeitbasierten Fehlern (maximal N Dinge für X Sekunden pro Thread), insbesondere die Fehler im Statuscode 503
, sollte der Code die Ausnahme abfangen und mithilfe eines exponentiellen Backoff-Algorithmus eine kleine Verzögerung warten, bevor Sie den fehlgeschlagenen Aufruf wiederholen. Ein Beispiel für die Data Transfer API für einen Thread ist das Warten von 5 Sekunden und das Wiederholen des fehlgeschlagenen Aufrufs. Wenn die Anfrage erfolgreich ist, wiederholen Sie dieses Muster für die anderen Threads. Wenn die zweite Anfrage nicht erfolgreich ist, sollte Ihre Anwendung die Häufigkeit der Anfrage so lange reduzieren, bis der Aufruf erfolgreich ist. Erhöhen Sie beispielsweise die anfängliche Verzögerung von 5 Sekunden auf 10 Sekunden und wiederholen Sie den fehlgeschlagenen Aufruf. Legen Sie außerdem ein Limit für Wiederholungen fest. Beispielsweise können Sie eine Anfrage fünf- bis siebenmal mit unterschiedlichen Verzögerungszeiten wiederholen, bevor die Anwendung einen Fehler an den Nutzer zurückgibt.
Einschränkungen
API-Limitkategorien | Einschränkungen |
---|---|
Abfragen pro Sekunde (Queries per second, QPS) | Das Limit für Entwicklerprojekte liegt bei 10 Abfragen pro Sekunde pro Konto. |
Kontingente
API-Kontingentkategorien | Kontingente |
---|---|
Maximale API-Anfragen pro Tag | Die maximale Anzahl von API-Anfragen pro Tag beträgt 500.000. |
Archivierung, Ablauf von Nachrichten | Gruppenarchive laufen nicht ab. Nachrichten verbleiben in einem Archiv, bis die Gruppe gelöscht wird. Die Aufbewahrungsrichtlinie für E-Mails wirkt sich nicht auf Nachrichten im Archiv einer Gruppe aus. |
Größe der E-Mail-Nachricht | Die maximale Größe einer E-Mail-Nachricht beträgt 25 MB. Dieses Limit umfasst die Metadatenheader, den Textkörper und alle Anhänge der Nachricht. |
Andere Arten von Limits
Andere Arten von Limits | Einschränkungen und Richtlinien |
---|---|
Formate für Inhaltstypen | Eine E-Mail-Nachricht muss im standardmäßigen RFC 822-Textformat vorliegen.
Für das Inhaltstyp-Format einer Anfrage zum Hochladen migrierter E-Mails wird der Header Content-type: message/rfc822 verwendet.
|
Datenformat in API-Antworten | Das Datenformat der Antwort ist JavaScript Object Notation (JSON). |
Richtlinien für Speicherorte von Daten | Die Data Transfer API unterstützt keine Richtlinien für Speicherorte, die vorschreiben, dass Daten aus vertraglichen Gründen an bestimmten geografischen oder politischen Grenzen gespeichert werden müssen. Verwenden Sie die Data Transfer API nicht, wenn der Datenspeicherort für Ihr Konto erforderlich ist. |
Parallele Einfügen von Nachrichten | Die Data Transfer API unterstützt parallele Anfragen zum Einfügen von E-Mails in verschiedene Gruppenarchive. Die Data Transfer API unterstützt jedoch nicht das parallele Einfügen von Nachrichten in dasselbe Gruppenarchiv. Auch werden in dieser API-Version keine Batchanfragen unterstützt. |
Nicht autorisierte Anfragen | Die Data Transfer API akzeptiert keine nicht autorisierten Anfragen. Eine Anfrage gilt als nicht autorisiert, wenn kein Autorisierungstoken angegeben ist. |