Skip to main content

PLANAV API エンドポイント設計書

基本情報

  • ベースURL: https://api.planav.com/v1
  • 認証: すべてのエンドポイントは、認証されたユーザーのみがアクセス可能です(/authエンドポイントを除く)
  • レスポンス形式: JSON
  • HTTP メソッド: GET, POST, PUT, DELETE

エンドポイント一覧

認証

エンドポイントメソッド説明
/auth/registerPOST新規ユーザー登録
/auth/loginPOSTユーザーログイン
/auth/logoutPOSTユーザーログアウト
/auth/refreshPOSTアクセストークンの更新
/auth/password/resetPOSTパスワードリセット要求
/auth/password/reset/confirmPOSTパスワードリセットの確認

ユーザー管理

エンドポイントメソッド説明
/users/meGET現在のユーザー情報を取得
/users/mePUTユーザー情報を更新
/users/me/emailPUTメールアドレスを変更
/users/meDELETEアカウントを削除

目標(Goals)管理

エンドポイントメソッド説明
/goalsPOST新しい目標を作成
/goalsGETすべての目標を取得
/goals/[goal_id]GET特定の目標を取得
/goals/[goal_id]PUT目標を更新
/goals/[goal_id]DELETE目標を削除
/goals/[goal_id]/archivePOST目標をアーカイブ
/goals/searchGET目標を検索
/goals/categoriesGET目標カテゴリを取得

デイリータスク管理

エンドポイントメソッド説明
/tasksPOST新しいタスクを作成
/tasksGETすべてのタスクを取得
/tasks/[task_id]GET特定のタスクを取得
/tasks/[task_id]PUTタスクを更新
/tasks/[task_id]DELETEタスクを削除
/tasks/goal/[goal_id]GET特定の目標に関連するすべてのタスクを取得
/tasks/date/[date]GET特定の日付のタスクを取得

進捗管理

エンドポイントメソッド説明
/progress/goals/[goal_id]GET特定の目標の進捗状況を取得
/progress/overallGET全体の目標達成率を取得
/progress/categoriesGETカテゴリ別進捗状況を取得
/progress/trendsGET進捗トレンドを取得

通知

エンドポイントメソッド説明
/notificationsGETすべての通知を取得
/notifications/[notification_id]PUT通知を既読にマーク
/notifications/settingsGET通知設定を取得
/notifications/settingsPUT通知設定を更新

データバックアップと復元

エンドポイントメソッド説明
/backupsPOSTバックアップを作成
/backupsGETバックアップリストを取得
/backups/[backup_id]GET特定のバックアップを取得
/backups/[backup_id]/restorePOSTバックアップから復元

その他

エンドポイントメソッド説明
/settingsGETユーザー設定を取得
/settingsPUTユーザー設定を更新

リクエスト/レスポンス例

目標作成 (POST /goals)

リクエスト:

{
"name": "マラソン完走",
"category": "健康",
"icon": "running",
"color": "#FF5733",
"deadline": "2024-12-31",
"extend": false,
"unit": "km",
"total": 42.2,
"allocation": 10
}

レスポンス:

{
"id": 1,
"name": "マラソン完走",
"category": "健康",
"icon": "running",
"color": "#FF5733",
"deadline": "2024-12-31",
"extend": false,
"unit": "km",
"total": 42.2,
"allocation": 10,
"created_at": "2024-07-06T10:00:00Z"
}

タスク取得 (GET /tasks/goal/[goal_id])

レスポンス:

{
"tasks": [
{
"id": 1,
"goal_id": 1,
"date": "2024-07-06",
"amount": 5.5,
"note": "朝のランニング",
"status": "completed",
"difficulty": "medium",
"estimated_time": 60
},
{
"id": 2,
"goal_id": 1,
"date": "2024-07-07",
"amount": 6.0,
"note": "夕方のランニング",
"status": "not_started",
"difficulty": "hard",
"estimated_time": 70
}
]
}

エラーレスポンス

エラーが発生した場合、APIは適切なHTTPステータスコードと共に以下の形式でエラー情報を返します:

{
"error": {
"code": "ERROR_CODE",
"message": "エラーの詳細メッセージ"
}
}