API 一覧
ベースURL
http://localhost:3000/api/v1エンドポイント一覧
認証
| メソッド | パス | 説明 |
|---|---|---|
| POST | /auth/register | ユーザー登録 |
| POST | /auth/login | ログイン |
| GET | /auth/me | 現在のユーザー情報取得 |
マイル管理
| メソッド | パス | 説明 |
|---|---|---|
| GET | /miles/balance | マイル残高取得 |
| PUT | /miles/balance | マイル残高更新 |
| GET | /miles/chart | マイルチャート取得 |
| GET | /miles/chart/:airline | 航空会社別チャート |
検索
| メソッド | パス | 説明 |
|---|---|---|
| GET | /search/destinations | 目的地検索 |
| GET | /search/recommend | レコメンド検索 |
| GET | /search/season-map | シーズン別マップ |
| GET | /search/availability | フライト空席カレンダー (origin, destination, year, month) |
ホテル
| メソッド | パス | 説明 |
|---|---|---|
| GET | /hotels | 目的地のホテル一覧 (destination) |
宿泊検索(レガシー)
| メソッド | パス | 説明 |
|---|---|---|
| GET | /accommodation/search | 宿泊横断検索 |
| GET | /accommodation/compare | 同一ホテル比較 |
グルメ
| メソッド | パス | 説明 |
|---|---|---|
| GET | /gourmet | レストラン一覧 (region, cuisine オプション) |
| GET | /gourmet/:id | レストラン詳細 + 近隣レストラン |
| GET | /gourmet/bookmarks | ログインユーザーのブックマーク一覧 🔒 |
| POST | /gourmet/bookmarks/:restaurantId | ブックマーク追加 🔒 |
| DELETE | /gourmet/bookmarks/:restaurantId | ブックマーク削除 🔒 |
キャンペーン
| メソッド | パス | 説明 |
|---|---|---|
| GET | /campaigns | 航空会社キャンペーン一覧 (airline, active オプション) |
旅行プラン
| メソッド | パス | 説明 |
|---|---|---|
| GET | /trips | プラン一覧取得 |
| POST | /trips | プラン作成 |
| GET | /trips/:id | プラン詳細取得 |
| PUT | /trips/:id | プラン更新 |
| DELETE | /trips/:id | プラン削除 |
| POST | /trips/:id/flights | フライト追加 |
| POST | /trips/:id/accommodations | 宿泊追加 |
| POST | /trips/:id/itinerary | 日程アイテム追加 |
マスタデータ
| メソッド | パス | 説明 |
|---|---|---|
| GET | /airports | 空港一覧 |
| GET | /airports/origins | 出発便がある空港のみ抽出(出発空港セレクタ用) |
| GET | /airports/:code | 空港詳細 |
| GET | /seasons/:airline | シーズン定義 |
🔒 マークのエンドポイントは JWT 認証が必須です。
認証
JWT Bearer トークンを Authorization ヘッダーに設定。
Authorization: Bearer <token>レスポンス形式
成功時
json
{
"success": true,
"data": { ... }
}エラー時
json
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "出発空港を指定してください"
}
}エラーコード
| コード | HTTPステータス | 説明 |
|---|---|---|
UNAUTHORIZED | 401 | 認証が必要 |
FORBIDDEN | 403 | 権限なし |
NOT_FOUND | 404 | リソースが見つからない |
VALIDATION_ERROR | 400 | バリデーションエラー |
EXTERNAL_API_ERROR | 502 | 外部API呼び出し失敗 |
INTERNAL_ERROR | 500 | サーバー内部エラー |