Skip to content

API-001-10 共有テンプレート warm

← API-一覧

概要

日別記事テンプレートの共有データ(daily_link_list + daily_data_kishu_list)を L1/L2 に warm する。HTML は返さず、以降の UI 非同期 REST(API-001-1 等)が L2_HIT できるようにする(Issue #2183 / to-be Phase 2)。

入力(リクエスト)

param必須型・制約説明
dateはいYYYY-MM-DD対象日
hallsはい英字スラッグの配列、またはカンマ区切り CSVページ全体のホール一覧(L2 キャッシュキー生成に使用。make_artist_halls_csv と同一集合)

POST ボディは JSON(Content-Type: application/json)を推奨。

出力(レスポンス)

成功時 data

field説明
successboolean常に true
warmedboolean常に true(warm 完了)

HTTP ステータス: 200

失敗・エラー条件

条件レスポンス形式
バリデーションエラー{ "success": false, "error": { "message": "..." } }(400)
nonce 不正 / レート制限超過WordPress REST 標準(403 等)
サーバー内部エラー{ "success": false, "error": { "message": "..." } }(500)

クライアント(JS orchestrator)のフォールバック

実装: core_src/View/templates/daily_article_result/daily_article_orchestrator.js(Phase 4 / Issue #2185)。

  • warm POST は 5 秒タイムアウト。超過・ネットワーク断・4xx/5xx 時は console.warn のうえ UI REST を起動する(ページ表示はブロックしない)。
  • warm 失敗時は UI REST 発火前に 200ms 待機し、先頭リクエストが L2 populate しやすくする(完全なスタンピード防止ではない。warm 失敗時は既存挙動と同等の並列 DB_FETCH が起こり得る)。

権限・nonce

名前空間共通事項は API-一覧 を参照。本エンドポイントは API-001-1 等と同様、AsyncLoadingHandler + WordPressAsyncLoadingPermissionChecker(nonce + IP レート制限)を使用する。差分は method が POST(GET による prefetch による意図しない warm を避ける)のみ。