Appearance
API-001-17 MoveDayHall ホール横断バッチ取得
概要
日別記事テンプレートの MoveDayHall(前日・翌日・前年サムネリンク)を 複数ホール分まとめて 非同期取得する(Issue #3608)。初回パスではホール数分の個別 GET /async-move-day-hall を避け、RTT を削減する。単体 GET(API-001-12)は部分失敗時のリトライ用に残す。
バッチ処理の先頭で 1 回だけ initialize_navigation と共有テンプレート L2 warm(halls をテンプレートホール一覧として使用)を行い、その後ホールごとに描画する。
入力(リクエスト)
| param | 必須 | 型・制約 | 説明 |
|---|---|---|---|
date | はい | YYYY-MM-DD | 記事対象日(ナビ用 link_day_data 解決・L2 warm に使用) |
halls | はい | 英字スラッグの配列、またはカンマ区切り CSV | 取得対象ホール一覧(L2 warm にも同一集合を使用) |
preday | はい | YYYYMMDD | 前日(MoveDayHall 従来 ShortCode と同形式。全ホール共通) |
nextday | はい | YYYYMMDD | 翌日(MoveDayHall 従来 ShortCode と同形式。全ホール共通) |
出力(レスポンス)
成功時 data(リクエスト自体が処理できた場合)
| field | 型 | 説明 |
|---|---|---|
success | boolean | 常に true(ホール単位の成否は items 側。部分失敗でもトップは true) |
items | object | ホール英字スラッグ → { success, html?, error? } |
assets | object | 動的読み込み用 CSS(バッチ全体で 1 回。move_day_hall 等) |
HTTP ステータス: 200
items の各要素
| field | 型 | 説明 |
|---|---|---|
success | boolean | 当該ホールの描画成否 |
html | string | 成功時のみ。MoveDayHall ショートコード相当の HTML |
error | object | 失敗時のみ。{ "message": "..." }(クライアント向け文言) |
失敗ホールはクライアントが既存の GET /async-move-day-hall でリトライする(優先度付きプール・Issue #3602)。
失敗・エラー条件
| 条件 | レスポンス形式 |
|---|---|
| バリデーションエラー | { "success": false, "error": { "message": "..." } }(400) |
| nonce 不正 / レート制限超過 | WordPress REST 標準(403 等) |
| サーバー内部エラー(全体) | { "success": false, "error": { "message": "..." } }(500) |
assets.styles(CSS handle 一覧)
| handle | ファイル |
|---|---|
move-day-hall-css | templates/move_day_hall/move_day_hall.css |
権限・nonce
名前空間共通事項は API-一覧 を参照。本エンドポイントは API-001-1 等と同様、AsyncLoadingHandler + WordPressAsyncLoadingPermissionChecker(nonce + IP レート制限)を使用する。差分はなし(共通のみ)。