ABCDEFGHIJKLMNOPQRSTUVWXYZAAABAC
1
분류Description담당자URIMethodhttp headerrequest_bodyhttp status coderesponse_bodydb query비고
2
Member(User)회원가입곽승환api/v1/members/registerPOST{
"email": "sh@gmail.com",
"name": "곽승환",
"password": "pw123"
}
201{
"status_code": 201,
"message": "Success"
}
INSERT INTO member ( email, name, password)
VALUE("sh@gmail.com", "곽승환", "pw123");
3
로그인곽승환api/v1/members/loginPOST{
"email": "sh@gmail.com",
"password": "pw123"
}
200{
"status_code": 200,
"message": "Success",
"member": {
"id": 1,
"email": "sh@gmail.com",
"name": "곽상환",
"image": null,
"created_at": "2024-04-03T02:50:57.796692Z",
"updated_at": "2024-04-03T02:50:57.796716Z"
}
"access": Access_token,
"refresh": Refresh_token
}
4
소셜 로그인곽승환api/v1/members/kakao/loginPOST{
"code": 카카오 인가코드
}
200{
"status_code": 200,
"message": "Success",
"member": {
"id": 1,
"email": "sh@gmail.com",
"name": "곽상환",
"image": null,
"created_at": "2024-04-03T02:50:57.796692Z",
"updated_at": "2024-04-03T02:50:57.796716Z"
}
"access": Access_token,
"refresh": Refresh_token
}
5
토큰
리프레쉬
곽승환api/v1/members/login/refreshPOSTACCESS-TOKEN{
"refresh": Refresh_Token
}
{
"access": Access_Token
}
6
로그아웃곽승환api/v1/members/logoutPOSTACCESS-TOKEN200{
"status_code": 200,
"message": "Success"
}
7
프로필 사진
등록
곽승환api/v1/members/image-uploadPOSTACCESS-TOKEN{
"image": 이미지 파일
}
{
"status_code": 200,
"message": "Success"
}
8
회원정보 수정곽승환api/v1/members/detailPUTACCESS-TOKEN{
"name": "곽상환",
"password": "sh123"
}
201{
"status_code": 201,
"message": "Success",
"member": {
"id": 1,
"email": "sh@gmail.com",
"name": "곽상환",
"image": null,
"created_at": "2024-04-03T02:50:57.796692Z",
"updated_at": "2024-04-03T02:50:57.796716Z"
}
}
UPDATE member
SET name = "곽상환", password="sh123"
WHERE id=111;
9
회원조회곽승환api/v1/members/detail/GETACCESS-TOKEN{
"status_code": 200,
"message": "Success",
"member": {
"id": 1,
"email": "sh@gmail.com",
"name": "곽승환",
"image": null,
"created_at": "2024-04-03T02:50:57.796692Z",
"updated_at": "2024-04-03T02:50:57.796716Z"
}
}
SELECT id, email, name, created_at, updated_at
FROM member
WHERE id=111;
10
회원탈퇴곽승환api/v1/members/detailDELETEACCESS-TOKEN200{
"status_code": 200,
"message": "Success"
}
DELETE FROM member
WHERE id=111;
11
Budget예산 생성임희연api/v1/budgets/listPOSTACCESS-TOKEN{
"value": 600000
}
201{
"status_code": 201,
"message": "Success"
}
INSERT INTO budget (value, member_id)
VALUES ( 600000, 111 );
12
예산 조회임희연api/v1/budgets/list?year=2024&month=4GETACCESS-TOKEN200{
"status_code": 200,
"message": "Success",
"budget_list" : [
{
"id": 1,
"value": 600000,
"created_at": "2024-04-01:10:20:12",
"updated_at": "2024-04-01:11:22:12"
}
,,,,
],
"budget_total": 600000
}
SELECT value
FROM budget
WHERE member_id = 111
AND YEAR(created_at) = 2024
AND MONTH(created_at) = 4;
limit 가 있습니다.
13
예산 수정임희연api/v1/budgets/detail/{budget_id}PUTACCESS-TOKEN{
"value": 800000
}
201{
"status_code": 201,
"message": "Success",
"budget" : {
"id": 1,
"value": 800000,
"created_at": "2024-04-01:10:20:12",
"updated_at": "2024-04-01:11:22:12"
}
}
UPDATE budget
SET value = 800000
WHERE id = 1;
14
예산 삭제임희연api/v1/budgets/detail/{budget_id}DELETEACCESS-TOKEN200{
"status_code": 200,
"message": "Success"
}
DELETE FROM budget
WHERE id = 1;
15
Category카테고리 조회곽승환api/v1/expenses/categoriesGET200{
"status_code": 200,
"message": "Success",
"categories" : [
{
"id": 1,
"content": "식비"
},
,,,,
]
}
SELECT * FROM category;
16
Payment지불 형태 조회곽승환api/v1/expenses/paymentsGET200{
"status_code": 200,
"message": "Success",
"payments" : [
{
"id": 1,
"type": "현금"
},
,,,,
]
}
SELECT * FROM payment;
17
Fixed-Expense고정지출 생성임희연api/v1/expenses/fix/listPOSTACCESS-TOKEN[
{
"category": 1,
"price": 300000,
},
...
]
201{
"status_code": 201,
"message": "Success"
}
INSERT INTO fixed_expense (member_id, category_id, price)
VALUES
( 111, 1, 300000),
...;
18
고정지출 목록 조회임희연api/v1/expenses/fix/listGETACCESS-TOKEN200{
"status_code": 200,
"message": "Success",
"fixed_expenses_list": [
{
"id": 1,
"category": 1,
"price": 12000,
"created_at": "2024-04-01:10:20:12",
"updated_at": "2024-04-01:11:22:12"
},
...
],
"fixed_expenses_per_categories": [
{
"category": 1,
"total_price": 100000
}
...
],
"total_expense_fixed_expense": "400000"
}
- 고정 지출 리스트 -
SELECT id, category_id, price, created_at, updated_at
FROM fixed_expense;


- 카테고리별 고정 지출내역 -
SELECT id, category_id, SUM(price) as total_price, created_at, updated_at
FROM fixed_expense
WHERE member_id = 111
GROUP BY category_id;



- 총 고정지출 + 총 지출 -
limit 가 있습니다.
19
고정지출 수정임희연api/v1/expenses/fix/detail/{fixed_expense_id}PUTACCESS-TOKEN{
"category": 1,
"price": 150000,
}
201{
"status_code": 201,
"message": "Success",
"fixed_expense" : {
"id": 1,
"category": 1,
"price": 150000
"created_at": "2024-04-01:10:20:12",
"updated_at": "2024-04-01:11:22:12"
}
}
UPDATE fixed_expense
SET price = 150000
WHERE id = 1;
20
고정지출 삭제임희연api/v1/expenses/fix/detail/{fixed_expense_id}DELETEACCESS-TOKEN200{
"status_code": 200,
"message": "Success"
}
DELETE FROM fixed_expense
WHERE id=3;
21
Expense지출 생성곽승환api/v1/expenses/listPOSTACCESS-TOKEN[
{
"category": 3,
"payment": 1,
"location": "스타벅스",
"price": 18000,
"content": "아메리카노 3잔",
"date": "2024-04-01",
},
....
]
201{
"status_code": 201,
"message": "Success"
}
INSERT INTO expense (member_id, category_id, payment_id, location, price, content, date)
VALUES
(111, 3, 1, "스타벅스", 18000, "아메리카노 3잔", "2024-04-01"),
....;
22
지출 목록 조회곽승환api/v1/expenses/list?year=2024&month=4GETACCESS-TOKEN200{
"status_code": 200,
"message": "Success",
"target_month" : "2024-04",
"expenses_list": [
{
"id": 1,
"category": 3,
"payment": 1,
"location": "스타벅스",
"price": 12000,
"content": "아메리카노 2잔",
"created_at": "2024-04-01:00:00:00",
"updated_at": "2024-04-01:00:00:00"
},
...
],
"total_expense_value:"100000"
}
- 지출 리스트 -
SELECT id, category_id, payment_id, location, price, content, created_at, updated_at
FROM expense
WHERE member_id = 111
AND YEAR(date) = 2024
AND MONTH(date) = 4;


- 총 지출 내역 -
SELECT SUM(e.price) + COALESCE(SUM(fe.price), 0) AS total_expense
FROM expense AS e
LEFT JOIN fixed_expense AS fe ON e.member_id = fe.member_id
WHERE member_id = 111
AND YEAR(e.date) = 2024
AND MONTH(e.date) = 4
GROUP BY member_id;
limit 가 있습니다.limit 가 있습니다.
23
지출 수정곽승환api/v1/expenses/detail/{expense_id}PUTACCESS-TOKEN{
"category": 3,
"payment": 2,
"location": "투썸플레이스",
"price": 15000,
"content": "아메리카노 3잔",
"date": "2024-04-01",
}
201{
"status_code": 201,
"message": "Success",
"expense" : {
"id": 1,
"category": 3,
"payment": 1,
"location": "투썸플레이스",
"price": 15000,
"content": "아메리카노 3잔",
"created_at": "2024-04-01:11:00:00",
"updated_at": "2024-04-01:00:00:00"
}
}
UPDATE expense
SET payment_id = 2, location = "투썸플레이스", price = 15000
WHERE id = 1;
24
지출 삭제곽승환api/v1/expenses/detail/{expense_id}DELETEACCESS-TOKEN200{
"status_code": 200,
"message": "Success"
}
DELETE FROM expense
WHERE id = 1
25
Report보고서 목록 조회곽승환api/v1/reports/list?year=2024&month=4GETACCESS-TOKEN200{
"status_code": 200,
"message": "Success",
"total_expenses_by_category": [
{
"id": 1,
"content": "식비",
"total_price": 1111
},
{
"id": 2,
"content": "주거/통신",
"total_price": 1111
},
{
"id": 3,
"content": "생활용품",
"total_price": 1111
},
{
"id": 4,
"content": "의복/미용",
"total_price": 1111
},
{
"id": 5,
"content": "건강/문화",
"total_price": 1111
},
...
],
"total_expenses_by_location": [
{
"location": "하나은행",
"total_price": 1111
},
{
"location": "CU",
"total_price": 1111
},
{
"location": "CGV",
"total_price": 1111
},
{
"location": "김밥천국",
"total_price": 1111
},
{
"location": "스타벅스",
"price": 1111
},
...
]
}
- 카테고리 별 지출 내역 -
SELECT category_id, SUM(price) + COALESCE(SUM(fe.price), 0) as total_price
FROM expense AS e
LEFT JOIN fixed_expense AS fe ON e.member_id = fe.member_id
WHERE user_id = 111
AND YEAR(e.date) = 2024
AND MONTH(e.date) = 4
GROUP BY category_id;



- 사용처 별 지출 내역 -
SELECT location, SUM(price) as total_price
FROM expense
WHERE user_id = 111
GROUP BY location;
limit 가 있습니다.
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100