Estou criando uma API para uma plataforma de veiculação de anúncios que permitirá que você solicite dados do rastreador para campanhas publicitárias. As campanhas costumam exceder centenas de milhões de solicitações, o que significa que haverá muitos terabytes de dados. Portanto, precisamos impedir que os consumidores da API solicitem muitos dados de uma só vez (de modo que a solicitação atinja o tempo limite), mas não tenho certeza de qual é a melhor prática.
As opções que eu já identifiquei são:
- adicione um parâmetro extra à solicitação que indica qual seção dos dados é desejada
- truncar os dados e, de alguma forma, informar ao cliente que eles precisam usar filtros mais específicos
- responda com o código de status HTTP 413 (mas isso parece ser para grandes organismos de solicitação, não para respostas)
- alternando para uma API de streaming (como as APIs de streaming do twitter )
Mas minha pergunta é: qual é a prática padrão / resposta adequada para esse tipo de situação?
Nota: Os ataques de DoS não são uma grande preocupação, pois essa não será uma API pública