AyumuOgasawara / receipt-scanner

レシートの写真から家計簿を生成してくれるアプリ
0 stars 0 forks source link

APIのエンドポイントの構造を考える #5

Closed AyumuOgasawara closed 1 month ago

AyumuOgasawara commented 1 month ago
エンドポイント説明 HTTPメソッド エンドポイントルート 例のリクエスト 例のレスポンス
新しいユーザーを作成 POST /users { "username": "john", "email": "john@example.com", "password": "password123" } { "id": 1, "username": "john", "email": "john@example.com" }
ユーザー詳細を取得 GET /users/{userId} N/A { "id": 1, "username": "john", "email": "john@example.com" }
ユーザー詳細を更新 PUT /users/{userId} { "email": "john.doe@example.com" } { "id": 1, "username": "john", "email": "john.doe@example.com" }
ユーザーを削除 DELETE /users/{userId} N/A { "message": "User deleted successfully" }
新しい支出を作成 POST /users/{userId}/expenses { "amount": 50.75, "date": "2024-08-07", "categoryId": 2, "description": "Groceries" } { "id": 1, "amount": 50.75, "date": "2024-08-07", "categoryId": 2, "description": "Groceries" }
ユーザーのすべての支出を取得 GET /users/{userId}/expenses N/A [ { "id": 1, "amount": 50.75, "date": "2024-08-07", "categoryId": 2, "description": "Groceries" } ]
特定の支出を取得 GET /users/{userId}/expenses/{expenseId} N/A { "id": 1, "amount": 50.75, "date": "2024-08-07", "categoryId": 2, "description": "Groceries" }
支出を更新 PUT /users/{userId}/expenses/{expenseId} { "amount": 55.00 } { "id": 1, "amount": 55.00, "date": "2024-08-07", "categoryId": 2, "description": "Groceries" }
支出を削除 DELETE /users/{userId}/expenses/{expenseId} N/A { "message": "Expense deleted successfully" }
レシート画像をアップロード POST /users/{userId}/expenses/{expenseId}/receipts 画像ファイル { "id": 1, "url": "https://example.com/receipt.jpg", "expenseId": 1 }
レシート画像を取得 GET /users/{userId}/expenses/{expenseId}/receipts/{receiptId} N/A バイナリ画像データ または { "url": "https://example.com/receipt.jpg" }
レシート画像を削除 DELETE /users/{userId}/expenses/{expenseId}/receipts/{receiptId} N/A { "message": "Receipt deleted successfully" }
新しいカテゴリを作成 POST /users/{userId}/categories { "name": "Groceries", "description": "Grocery expenses" } { "id": 1, "name": "Groceries", "description": "Grocery expenses" }
ユーザーのすべてのカテゴリを取得 GET /users/{userId}/categories N/A [ { "id": 1, "name": "Groceries", "description": "Grocery expenses" } ]
特定のカテゴリを取得 GET /users/{userId}/categories/{categoryId} N/A { "id": 1, "name": "Groceries", "description": "Grocery expenses" }
カテゴリを更新 PUT /users/{userId}/categories/{categoryId} { "name": "Food & Groceries" } { "id": 1, "name": "Food & Groceries", "description": "Grocery expenses" }
カテゴリを削除 DELETE /users/{userId}/categories/{categoryId} N/A { "message": "Category deleted successfully" }