増分処理はライブイベントの購読ではない

APIキーを取得

日付窓をローカルの仕事として定義

Reddit Stream APIは独立した過去のアーカイブで、SSEやWebSocketのライブ配信ではありません。定期検索でも最新のRedditイベントが即座に届くわけではなく、更新日程や結果の不変性も保証されません。ここでの増分処理は、自分のバッチを追跡できる小さな仕事へ分けるという意味です。サーバーのイベントカーソル、配送保証、完全な変更一覧ではありません。受け取った過去記録の処理として利用者へ説明してください。

必要に応じて/v1/searchや/v1/postsのfromとtoを使い、UTCのYYYY-MM-DDで期間を指定します。toは指定日全体を含みます。終了日を次の仕事の開始日にも使うと重なりを作る場合があるため、日単位の計画でこの規則を考慮してください。秒単位の指定ができると仮定しないでください。きれいに期間分割しても、各日の記録が存在することや全一致結果の取得を証明するわけではありません。

各期間を仕事の識別子と関連付ければ、どの条件で何ページを試したか確認できます。障害調査や優先順位付けのためのクライアント側の工夫であり、サーバーの固定データセットではありません。文書順は日時順でないため、最後のレコードの日付を、それ以前の取得が全て完了した境界として使わないでください。手元で日時順に並べ替えても整理できるのは受信済みの記録だけで、未取得のデータは見つかりません。

ページ保存と再開条件

ページの要求例はhttps://api.redditstreamapi.com/v1/posts?subreddit=datasets&limit=3&page=2です。一クエリ最大100ページ、一要求最大100レコードという上限があり、limitは仕事に合わせて選びます。常に100を使う義務はありません。ページ番号は文書順の選択であり、永続的な続き位置やタイムスタンプではありません。二ページ目や三件の存在を約束する例でもなく、保存した番号から同じスナップショットが再開できる保証もありません。

各試行について条件、ページ、試行時刻、HTTP結果、ローカル書き込み結果を分けて残します。応答成功後に保存が失敗した場合、番号だけ進めると未保存の結果を飛ばすおそれがあります。再実行前にファイルやデータベースを確認してください。この進捗は自分の仕事の状態であり、サーバーから欠落なく再開できる保証ではありません。上限で停止した仕事と、受け取った結果の処理を終えた仕事も区別して報告します。

結果は時間、関連度、スコア順ではありません。min_scoreは最低条件のみです。eqは正確なレコード総数、gteは下限、unknownまたはnullは信頼できる総数が不明な状態です。正確な数でも全件保存を証明しません。parent_idとlink_idでまとめるのは関係分析時の任意処理で、閲覧や集計には不要です。欠けた親も復元されません。日付分割や重複除去は全体の網羅性と一意性の証拠にはなりません。

認証、エラー、再試行予算

Authorization: Bearer YOUR_API_KEYまたはX-API-Key: YOUR_API_KEYを使います。両方ともこのドメインのアーカイブキーでありReddit OAuthトークンではありません。秘密はサーバーで保持しログから除外します。400は引数修正、401はキー確認、402は残高確認、429は頻度低下と待機が必要な場合があります。試行上限を設定し、他アカウントで制限を回避しないでください。ブラウザーのログイン状態はバッチのヘッダー設定の証拠ではありません。

成功した取得は空でも一クレジット、1,000成功で$1です。無効な要求は差し引かれず、上流失敗では予約分が戻ります。クライアントの応答喪失はサーバー失敗を意味せず、成功した再試行に追加費用がかかる場合があります。保存状態と予算に基づき反復を制限してください。読み取り専用でも同じ応答や無料再試行は保証されません。既存のローカル応答の再処理とアーカイブへの新要求は異なる操作です。

/v1/statusは公開で非課金ですが、静的な範囲とHTTP応答だけを示し、検索、記録、キー、残高を検査しません。状態応答だけで取得完了にしないでください。仕事の報告には試したページ、保存できた結果、停止理由と範囲の不確実性を記載できます。それでもアーカイブの完全性、永久保存、固定性能を証明するものではありません。結果の利用や表示では、適用される法と第三者の権利も考慮する必要があります。