Appearance
API-001-2 ヒートマップ詳細
概要
日別記事結果のヒートマップ詳細(差枚・回転・両方)HTML を非同期で取得する。詳細ボタン初回クリック時などに呼び出し、type に応じた詳細表を返す(簡易表示は API-001-9)。
入力(リクエスト)
| param | 必須 | 型・制約 | 説明 |
|---|---|---|---|
hall | はい | 非空 string(英字 value) | ホール識別子(例: island)。日別記事で利用可能なホールのみ |
date | いいえ | 空または YYYY-MM-DD | 対象日 |
type | はい | coin / rotation / all のみ | ヒートマップ種別(HeatMapTypeEnum。unit_coin / total_coin 等は不可) |
halls | いいえ | 英字スラッグの配列、またはカンマ区切り CSV | args 未登録。クエリに含まれる場合のみ Converter が template_halls とし L2 warm に使用。不正値は Converter で 400 |
出力(レスポンス)
成功時 data
| field | 型 | 説明 |
|---|---|---|
success | boolean | 常に true |
html | string | ヒートマップ詳細 HTML 断片 |
assets | object | 動的読み込み用 CSS/JS(panzoom / pinch / modal 含む) |
HTTP ステータス: 200
失敗・エラー条件
| 条件 | レスポンス形式 |
|---|---|
| バリデーションエラー | { "success": false, "error": { "message": "..." } }(400) |
不正な type | { "success": false, "error": { "message": "..." } }(400) |
| nonce 不正 / レート制限超過 | WordPress REST 標準(403 等) |
| サーバー内部エラー | { "success": false, "error": { "message": "..." } }(500) |
assets.styles(CSS handle 一覧)
assets は動的注入用メタデータ(クライアントが loadStylesFromAssets / loadAssetsDynamically で読む)。API が CSS 本体を配信するわけではない。
下表は Controller が候補にする handle(意図マップ)。公開 CSS バンドル(daily-article-public-styles.css)が存在する場合、AssetUtil::PUBLIC_CSS_BUNDLE_SUPPRESSED_HANDLES に含まれる handle(本表の heat-map-detail-css)は assets.styles から除外され、初期 HTML 側で既読込済みとなる(バンドルあり時は styles が空配列になり得る)。
| handle | ファイル |
|---|---|
heat-map-detail-css | templates/heat_map_detail/heat_map_detail.css |
assets.scripts(JS handle 一覧)
assets.scripts は公開 CSS バンドル抑止の対象外。
| handle | ファイル |
|---|---|
heat-map-detail-panzoom-js | templates/heat_map_detail/vendor/panzoom.min.js |
heat-map-detail-pinch-js | templates/heat_map_detail/heat_map_detail_pinch.js |
heat-map-detail-modal-js | templates/heat_map_detail/heat_map_detail_modal.js |
heat-map-detail-js | templates/heat_map_detail/heat_map_detail.js |
権限・nonce
名前空間共通事項は API-一覧 を参照。本エンドポイントは AsyncLoadingHandler + WordPressAsyncLoadingPermissionChecker(nonce + IP レート制限)を使用する。差分はなし(共通のみ)。