Sto costruendo un'API per una piattaforma di pubblicazione di annunci che ti consentirà di richiedere i dati del tracker per le campagne pubblicitarie. Le campagne spesso superano centinaia di milioni di richieste, il che significa che ci saranno molti terabyte di dati. Pertanto, dobbiamo impedire ai consumatori di API di richiedere troppi dati contemporaneamente (in modo tale che la richiesta scada), ma non sono sicuro di quale sia la migliore pratica per farlo.
Le opzioni che ho già identificato sono:
- aggiungi un parametro aggiuntivo alla richiesta che indica quale sezione dei dati è desiderata
- tronca i dati e in qualche modo comunica al cliente che è necessario utilizzare filtri più specifici
- risponde con il codice di stato HTTP 413 (ma sembra essere per corpi di richieste di grandi dimensioni, non per risposte)
- passaggio a un'API di streaming (come API di streaming di Twitter )
Ma la mia domanda è: qual è la pratica standard / risposta appropriata per questo tipo di situazione?
Nota: gli attacchi DoS non sono molto preoccupanti poiché questa non sarà un'API pubblica