Ich erstelle eine API für eine Adserving-Plattform, mit der Sie Trackerdaten für Werbekampagnen anfordern können. Kampagnen überschreiten häufig Hunderte Millionen Anfragen, was bedeutet, dass Daten im Wert von vielen Terabyte vorliegen. Daher müssen wir verhindern, dass API-Konsumenten zu viele Daten gleichzeitig anfordern (so dass die Anforderung abgelaufen ist), aber ich bin mir nicht sicher, wie dies am besten funktioniert.
Optionen, die ich bereits identifiziert habe, sind:
- Fügen Sie der Anforderung einen zusätzlichen Parameter hinzu, der angibt, welcher Abschnitt der Daten gewünscht wird
- Schneiden Sie die Daten ab und teilen Sie dem Client irgendwie mit, dass er spezifischere Filter verwenden muss
- Antworten Sie mit dem HTTP-Statuscode 413 (dies scheint jedoch für große Anforderungskörper zu gelten, nicht für Antworten).
- Wechseln zu einer Streaming-API (wie die Streaming-APIs von Twitter )
Aber meine Frage ist, was ist die Standardpraxis / richtige Antwort für diese Art von Situation?
Hinweis: DoS-Angriffe sind kein großes Problem, da dies keine öffentliche API ist