画面 × API マップ(全 25 画面)
Screen × API map (all 25 screens)
SDUI Level 3 前提で、各画面が叩く View endpoint(画面入口)、
Action endpoint(ユーザー操作)、Telemetry endpoint(fire-and-forget)を網羅した一覧です。
パス・契約は api/src/routes-manifest.ts と
ViewEnvelope 仕様が SSoT。
Under SDUI Level 3, this page enumerates every View endpoint (screen entry),
Action endpoint (user mutation), and Telemetry endpoint (fire-and-forget) that each screen touches.
Paths and contracts are owned by api/src/routes-manifest.ts and the
ViewEnvelope spec.
読み方:
How to read:
- View(
GET /v1/mobile/views/*)=画面を開いた瞬間に 1 回叩く。ViewEnvelope(data/ui_config/navigation/validation/states/fallback_behavior/meta)で返る
- View (
GET /v1/mobile/views/*) — fired once when the screen is opened. Returns a ViewEnvelope (data/ui_config/navigation/validation/states/fallback_behavior/meta)
- Action(
POST /v1/mobile/actions/*)=ボタンタップ等のユーザー操作。ActionEnvelope(result + navigation + toast)で返る
- Action (
POST /v1/mobile/actions/*) — user gestures (button taps etc.). Returns an ActionEnvelope (result + navigation + toast)
- Telemetry(
POST /v1/mobile/telemetry/*)=計測・記録系、結果は無視可
- Telemetry (
POST /v1/mobile/telemetry/*) — analytics / logging; fire-and-forget
画面一覧と叩く endpoint
Screens and the endpoints they hit
01 スプラッシュSplash
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/boot | 起動時 1 回。コードマスタ・強制更新判定・feature flag を取得Fired once on launch. Pulls code-master, force-update check, feature flags |
| — | Supabase Auth getSession() | SDK 直接。JWT の有効性確認SDK direct. Checks JWT validity |
02 オンボーディングOnboarding
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| — | (API 呼び出しなし。静的スライド)(No API. Static slides) | — |
| Telemetry | POST /v1/mobile/telemetry | スライド閲覧・完了イベントSlide view / completion events |
03 認証Auth
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/auth-config | 画面起動時。プロバイダ有効化・文言・同意文取得(認証不要)On screen open. Fetches enabled providers, copy, consent text (no auth required) |
| Action | POST /v1/mobile/actions/auth/request-otp | 「メールで OTP を送る」ボタン"Send OTP by email" button |
| Action | POST /v1/mobile/actions/auth/verify-otp | OTP 入力確定OTP entry submit |
| Action | POST /v1/mobile/actions/auth/sign-up | サインアップ確定Sign-up submit |
| Action | POST /v1/mobile/actions/auth/sign-out | サインアウトSign-out |
| — | Supabase Auth (SDK) | password / social 系の JWT 取得は SDK 直接Password / social sign-in runs against the SDK directly to obtain the JWT |
04 ホーム(Map)Home (Map)
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/home-feed | 画面起動時・pull-to-refresh。ピン・ボトムシート item・アクティブセッション・広告の集約On open / pull-to-refresh. Aggregates pins, bottom-sheet items, active session, ads |
| View | GET /v1/mobile/views/search-results?bbox=... | 地図パン/ズーム後に 250 ms デバウンスで再検索Re-queried 250 ms after pan / zoom |
| Telemetry | POST /v1/mobile/telemetry | ピンタップ・map_moved・bottom_sheet_expand 等Pin taps, map_moved, bottom_sheet_expand, etc. |
05 検索絞り込みSearch filter modal
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| — | モーダル内はローカル状態のみ。適用時に 04/06 を再フェッチLocal state only inside the modal. Applying triggers a refetch of 04 / 06 | — |
06 検索結果一覧Search results
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/search-results | 初期表示 / フィルタ変更 / 並び替え変更Initial render, filter change, sort change |
06a AI 検索AI search
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/ai-search | 画面起動時。サジェスト例・直近クエリOn open. Suggestion chips and recent queries |
| Action | POST /v1/mobile/actions/ai-search/query | 「検索する」ボタン。自然言語 → 構造化クエリ → 結果"Search" button. NL → structured query → results |
| Action | POST /v1/mobile/actions/search-presets | 「この条件をプリセット保存」"Save as preset" |
06b プリセット選択シートPreset picker sheet
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/search-presets | シート展開時に 1 回取得Fetched once when the sheet opens |
06c プリセット管理Preset management
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/search-presets | 画面起動時On open |
| Action | POST /v1/mobile/actions/search-presets | 「作成」ボタン"Create" button |
| Action | PATCH /v1/mobile/actions/search-presets/:id/update | 「保存」ボタン"Save" button |
| Action | POST /v1/mobile/actions/search-presets/:id/delete | 「削除」ボタン"Delete" button |
| Action | POST /v1/mobile/actions/search-presets/:id/set-default | 「デフォルトにする」"Set as default" |
07 駐車場詳細Parking lot detail
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/lot-detail/:id | 画面起動時。基本情報・料金・レビュー・画像を 1 本で集約On open. Single aggregate of basics / pricing / reviews / images |
| Action | POST /v1/mobile/actions/lots/:id/toggle-save | ハートアイコンHeart icon tap |
| Action | POST /v1/mobile/actions/lots/:id/report-incorrect | 「誤情報を報告」"Report incorrect info" |
| Action | POST /v1/mobile/actions/sessions/start | 「駐車開始」ボタン(モーダル確定後)"Start parking" (after the modal confirms) |
08 駐車開始モーダルStart parking modal
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| Action | POST /v1/mobile/actions/sessions/start | 「駐車開始」確定。ActionEnvelope の navigation で 10 へ"Start parking" submit. ActionEnvelope navigation routes to 10 |
09 駐車管理(セッション一覧)Parking management (sessions list)
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/parking-sessions | 画面起動時・pull-to-refreshOn open / pull-to-refresh |
10 駐車詳細(駐車中)Parking detail (active)
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/parking-session/:id | 画面起動時。料金ルール・累計料金・アラート設定を集約On open. Aggregates pricing rules, running fare, alert config |
| Telemetry | POST /v1/mobile/telemetry | geofence 離脱・位置サンプルGeofence exit, location samples |
11 駐車終了フローEnd parking flow
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| Action | POST /v1/mobile/actions/sessions/:id/finalize | 「駐車終了」確定。最終料金決定 + Good/Bad 記録"End parking" submit. Locks fare + records Good/Bad |
| Action | POST /v1/mobile/actions/sessions/:id/cancel | 「キャンセル」(誤タップ救済)"Cancel" (mis-tap recovery) |
12 レビュー投稿Review compose
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/review-compose/:lot_id | 画面起動時。対象駐車場概要・既存自分レビュー・validation ルールOn open. Target lot summary, existing own review, validation rules |
| Action | POST /v1/mobile/actions/reviews/create | 「投稿」ボタン"Post" button |
13 駐車履歴Parking history
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/parking-history | 画面起動時。月グループ・フィルタ・ページングOn open. Month grouping, filters, pagination |
14 メディア一覧Media list
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/media-list | 画面起動時(認証不要)On open (no auth required) |
15 記事詳細Article detail
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/article-detail/:slug | 画面起動時(認証不要)On open (no auth required) |
16 Saved(お気に入り)Saved
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/saved | 画面起動時・pull-to-refreshOn open / pull-to-refresh |
| Action | POST /v1/mobile/actions/saved/:lot_id/remove | スワイプ / 削除ボタンSwipe / delete button |
17 通知一覧 / 通知設定Notifications list / settings
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/notifications | 通知一覧画面Notifications list |
| View | GET /v1/mobile/views/notifications/preferences | 通知設定画面Preferences screen |
| Action | POST /v1/mobile/actions/notifications/mark-read | 既読化(個別 / 一括)Mark as read (single / bulk) |
| Action | PATCH /v1/mobile/actions/notifications/preferences/update | 設定保存Save preferences |
18 プロフィール(タブトップ)Profile (tab root)
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/profile | 画面起動時。プロフィール要約・レベル・契約ステータス等On open. Profile summary, level, subscription status |
| Action | PATCH /v1/mobile/actions/profile/update | 表示名・bio 保存Save display name / bio |
| Action | POST /v1/mobile/actions/profile/avatar-upload | アバター更新(presigned URL 発行)Update avatar (issues presigned URL) |
| Action | POST /v1/mobile/actions/profile/request-data-export | データエクスポート依頼Request data export |
| Action | POST /v1/mobile/actions/profile/delete-account | 退会Delete account |
18a 車両管理Vehicle management
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/profile/vehicles | 一覧取得List fetch |
| Action | POST /v1/mobile/actions/profile/vehicles/add | 車両追加Add vehicle |
| Action | PATCH /v1/mobile/actions/profile/vehicles/:id/update | 車両更新Update vehicle |
| Action | POST /v1/mobile/actions/profile/vehicles/:id/delete | 車両削除Delete vehicle |
| Action | POST /v1/mobile/actions/profile/vehicles/:id/set-default | デフォルト車両Set default vehicle |
18b 紹介コードReferrals
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/profile/referrals | 紹介コード・実績Referral code and stats |
18c ゲーミフィケーションGamification
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/profile/gamification | EXP / badges / 進捗EXP / badges / progress |
18d 設定Settings
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/profile/settings | 言語・単位・地図スタイル・privacyLanguage / units / map style / privacy |
| Action | PATCH /v1/mobile/actions/profile/update | 設定保存Save settings |
| — | Supabase Auth (SDK) | パスワード変更・メール変更は SDK 直接Password / email change runs against the SDK directly |
19 駐車場登録申請Lot registration
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/lot-registration | フォーム起動時(タグ候補・料金ルールテンプレート等)On open. Tag candidates, pricing-rule templates |
| Action | POST /v1/mobile/actions/lot-registration/submit | 「申請する」ボタン"Submit application" button |
20 プレミアムプランPremium plan
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/premium | 画面起動時。プラン比較・契約状況・特商法リンクOn open. Plan compare, current status, required disclosures |
| Action | POST /v1/mobile/actions/premium/verify-iap | StoreKit / Play Billing のレシート検証Validate StoreKit / Play Billing receipt |
| Action | POST /v1/mobile/actions/premium/cancel | 契約キャンセルCancel subscription |
| Action | POST /v1/mobile/actions/premium/apply-coupon | クーポン適用Apply coupon |
21 サポートSupport
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/support | 画面起動時。FAQ・既存ticket 一覧On open. FAQ plus existing tickets |
| Action | POST /v1/mobile/actions/support/submit-ticket | 「問い合わせを送る」"Submit inquiry" |
22 ポリシー / 規約Policies / terms
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/policies | 画面起動時(認証不要)。終了通告・同意履歴を含むOn open (no auth). Includes termination notices and consent history |
23 検索履歴Search history
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/search-history | 画面起動時(optional user)On open (optional user) |
| Action | POST /v1/mobile/actions/search-history/clear | 「履歴をクリア」"Clear history" |
| Action | POST /v1/mobile/actions/search/save-history | 検索実行時に履歴保存(04/06 から呼ばれる)Saves search history when a search runs (invoked from 04 / 06) |
24 権限リクエストPermission request
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/permissions | 画面起動時。対象権限・説明文・fallback_behaviorOn open. Target permissions, rationale copy, fallback_behavior |
| Action | POST /v1/mobile/actions/permissions/record | OS ダイアログ結果の記録(granted / denied)Record OS dialog result (granted / denied) |
25 エラー / フォールバックError / fallback
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| View | GET /v1/mobile/views/error-fallback | 致命エラー時の画面(認証不要)Fatal-error screen (no auth) |
| Action | POST /v1/mobile/actions/error/report | 「詳細を送信」"Send details" |
サポート系(画面横断)
Cross-screen auxiliaries
| Kind | Endpoint | トリガ / 用途Trigger / purpose |
| Telemetry | POST /v1/mobile/telemetry | 画面横断の analytics / geofence / push 受信 / 位置サンプルCross-screen analytics, geofence, push receipt, location samples |
| Action | POST /v1/mobile/actions/push-tokens/register | device token 登録(サインイン後 / token rotation 時)Register device token (after sign-in / on rotation) |
関連ドキュメント
Related docs