Appearance
API-001-10 共有テンプレート warm
概要
日別記事テンプレートの共有データ(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 | 型 | 説明 |
|---|---|---|
success | boolean | 常に true |
warmed | boolean | 常に 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 を避ける)のみ。