広告キャンペーンのトラッカーデータをリクエストできる広告配信プラットフォーム用のAPIを構築しています。多くの場合、キャンペーンは数億のリクエストを超えるため、テラバイトに相当するデータが大量に存在します。したがって、APIの利用者が一度に大量のデータをリクエストすること(リクエストがタイムアウトするなど)を防ぐ必要がありますが、それを行うためのベストプラクティスが何かはわかりません。
私がすでに特定したオプションは次のとおりです。
- データのどのセクションが必要かを示す追加のパラメーターをリクエストに追加する
- データを切り捨て、どういうわけか、より具体的なフィルターを使用する必要があることをクライアントに伝えます
- HTTPステータスコード413で応答します(ただし、これは応答ではなく、大きなリクエスト本文のようです)
- ストリーミングAPIへの切り替え(TwitterのストリーミングAPIなど)
しかし私の質問は、このような状況に対する標準的な実践/適切な対応は何ですか?
注:DoS攻撃はパブリックAPIではないため、それほど心配する必要はありません。