-
Notifications
You must be signed in to change notification settings - Fork 5
API Docs
Hyeonu Yun edited this page Dec 7, 2020
·
49 revisions
API 개발할 때마다 요청 변수(서브 쿼리 내용), reqeust body, response, 요청문 샘플을 적어주기
- GET일때는 요청문 예시, 응답 정보, 응답 예시
- POST일때는 요청 변수 정보, 응답 정보, 응답 예시
- PATCH일때는 요청 변수 정보, 응답 정보, 응답 예시
- DELETE일때는 요청문 예시, 응답 정보, 응답 예시
메서드 | 요청 URI | 설명 |
---|---|---|
GET | api/oauth/login/:provider | OAuth를 활용한 로그인 |
GET | api/oauth/logout | 로그아웃 |
메서드 | 요청 URI | 설명 |
---|---|---|
POST | api/accountbooks | 가계부 생성 |
GET | api/accountbooks | 유저가 소유한 가계부 목록 조회 |
PATCH | api/accountbooks/:accountbook_id | 관리자가 수행하는 가계부 설정 수정 |
PATCH | api/accountbooks/:accountbook_id | 일반구성원이 수행하는 가계부 표지 수정 |
DELETE | api/accountbooks/:id | 가계부 삭제 |
메서드 | 요청 URI | 설명 |
---|---|---|
POST | api/social | 가계부에 구성원을 추가 |
GET | api/social/users/?accountbook_id | 가계부에 있는 유저 목록 조회 |
GET | api/social/?user_email | email을 통해서 특정 유저 조회 |
PATCH | api/social | 특정 구성원에게 관리자 권한 부여 |
DELETE | api/social/?user_id | 가계부 내 특정 유저를 추방 |
메서드 | 요청 URI | 설명 |
---|---|---|
POST | api/transactions/income | 가계부 수입 내역 생성 |
POST | api/transactions/expenditure | 가계부 지출 내역 생성 |
POST | api/transactions/income/text-parsing | 수입 관련 SMS/MMS 내용을 적절하게 파싱 |
POST | api/transactions/expenditure/text-parsing | 지출 관련 SMS/MMS 내용을 적절하게 파싱 |
GET | api/transacions?accountbook_id&start_date&end_date | 가계부 수입 지출 내역 조회 |
PATCH | api/transactions/income/:income_id | 가계부 내 특정 수입 내역 수정 |
PATCH | api/transactions/expenditure/:expenditure_id | 가계부 내 특정 지출 내역 수정 |
DELETE | api/transactions/income/:income_id | 가계부 내 특정 수입 내역 삭제 |
DELETE | api/transactions/expenditure/:expenditure_id | 가계부 내 특정 지출 내역 삭제 |
메서드 | 요청 URI | 설명 |
---|---|---|
POST | api/categories/income | 수입 카테고리 생성 |
POST | api/categories/expenditure | 지출 카테고리 생성 |
GET | api/categories/income/?accountbook_id | 수입 카테고리 조회 |
GET | api/categories/expenditure/?accountbook_id | 지출 카테고리 조회 |
PATCH | api/categories/income/:income_category_id | 수입 카테고리 수정 |
PATCH | api/categories/expenditure/:expenditure_category_id | 지출 카테고리 수정 |
DELETE | api/categories/income/:income_category_id | 수입 카테고리 삭제 |
DELETE | api/categories/expenditure/:expenditure_category_id | 지출 카테고리 삭제 |
메서드 | 요청 URI | 설명 |
---|---|---|
POST | api/accounts | 새로운 계좌(결제수단) 생성 |
GET | api/accounts/?accountbook_id | 계좌(결제수단) 목록 조회 |
PATCH | api/accounts/:accounts_id | 계좌(결제수단) 수정 |
DELETE | api/accounts/:accounts_id | 계좌(결제수단) 삭제 |
메서드 | 요청 URI | 설명 |
---|---|---|
POST | api/csv | 사용자가 업로드한 CSV 파일을 전체 거래내역에 추가 |
GET | api/csv/?accountbook_id | 전체 거래내역을 CSV 파일로 만들어 반환 |
메서드 | 요청 URI | 설명 |
---|---|---|
GET | api/oauth/login/:provider | OAuth를 활용한 로그인 |
요청문 예시
http://localhost:5000/api/oauth/login/naver
요청 변수 정보
요청 변수명 | 데이터 타입 | 필수 여부 | 기본값 | 설명 |
---|---|---|---|---|
provider | String | Y | - | OAuth 인증 제공자 이름 1) 네이버 로그인: 'naver' 2) 카카오 로그인: 'kakao' |
-
ctx.cookies
에 jwt 토큰값이 담긴다. -
ctx.state.user
에 다음과 같은 정보가 담겨 반환된다.
{
id: 1,
provider: 'naver',
nickname: 'testNickname',
profileUrl: 'https://i.imgur.com/0kGli9o.jpg'
}
응답 정보
필드 | 데이터 타입 | 설명 |
---|---|---|
id | Integer | 사용자 고유 회원번호 |
provider | String | 인증 제공자 이름 |
nickname | String | 사용자 별명 |
profileUrl | String | 사용자 프로필사진 URL |
메서드 | 요청 URI | 설명 |
---|---|---|
GET | api/oauth/logout | 로그아웃 |
요청문 예시
http://localhost:5000/api/oauth/logout
-
ctx.cookies
에 jwt 토큰값이 사라진다.
응답 코드
- 로그아웃이 성공적으로 수행될 경우, status 204
- 로그아웃이 실패했을 경우, status 500
메서드 | 요청 URI | 설명 |
---|---|---|
GET | api/accountbooks | 유저가 소유한 가계부 목록 조회 |
요청문 예시
http://localhost:5000/api/accountbooks
응답 예시
[
{
"id": 2,
"authority": false,
"description": "테스트용 accountbook",
"color": "#1E90FF",
"accountbookId":1
},
...
]
응답 정보
필드 | 데이터 타입 | 설명 |
---|---|---|
id | Integer | 사용자와 가계부 간 관계 테이블 내 고유 식별 번호 |
authority | Boolean | 해당 가계부에 대한 관리자 권한 여부 |
description | String | 사용자가 설정해놓은 가계부에 대한 설명 |
color | String | 사용자가 설정해놓은 가계부 색상 |
accountbookId | Integer | 해당 가계부의 고유 식별 번호 |
메서드 | 요청 URI | description |
---|---|---|
POST | api/transactions/income | 수입 거래내역 생성 |
요청문 예시
localhost:5000/api/transactions/income
body
{
"accountbookId":1,
"incomeCategoryId":1,
"accountId":1,
"amount":5000,
"content":"안녕하세요",
"date":"2020-12-04",
"memo":"반갑습니다."
}
요청 변수 정보
요청 변수명 | 데이터 타입 | 필수 여부 | 기본값 | 설명 |
---|---|---|---|---|
accountbookId | Integer | Y | - | 가계부 id |
incomeCategoryId | Integer | Y | - | 수입 카테고리 id |
accountId | Integer | Y | - | 결제수단 Id |
amount | Integer | Y | - | 거래금액 |
content | string | Y | - | 거래내역 내용 |
date | date format | Y | - | 거래일 |
memo | string | N | - | 거래내역 메모 |
응답 예시
{
"id": 23,
"amount": 5000,
"content": "안녕하세요",
"date": "2020-12-04T00:00:00.000Z",
"memo": "반갑습니다.",
"category": {
"id": 1,
"name": "타행이체",
"color": "#1E90FF"
},
"account": {
"id": 1,
"name": "삼성카드",
"color": "#1E90FF"
}
}
응답 정보
필드 | 데이터 타입 | 설명 |
---|---|---|
id | Integer | 거래내역 id |
amount | Integer | 거래금액 |
content | string | 거래내역 내용 |
date | date format | 거래일 |
memo | string | 거래내역 메모 |
category | object | 수입 카테고리 |
account | object | 결제수단 카테고리 |
메서드 | 요청 URI | description |
---|---|---|
POST | api/transactions/expenditure | 수입 거래내역 생성 |
요청문 예시
localhost:5000/api/transactions/expenditure
body
{
"accountbookId":1,
"expenditureCategoryId":1,
"accountId":1,
"amount":5000,
"place":"안녕하세요",
"date":"2020-12-04",
"memo":"반갑습니다."
}
요청 변수 정보
요청 변수명 | 데이터 타입 | 필수 여부 | 기본값 | 설명 |
---|---|---|---|---|
accountbookId | Integer | Y | - | 가계부 id |
incomeCategoryId | Integer | Y | - | 수입 카테고리 id |
accountId | Integer | Y | - | 결제수단 Id |
amount | Integer | Y | - | 거래금액 |
place | string | Y | - | 거래내역 내용 |
date | date format | Y | - | 거래일 |
memo | string | N | - | 거래내역 메모 |
응답 예시
{
"id": 16,
"amount": 5000,
"place": "장소",
"date": "2020-12-04T00:00:00.000Z",
"memo": "반갑습니다.",
"category": {
"id": 1,
"name": "식사",
"color": "#1E90FF"
},
"account": {
"id": 1,
"name": "삼성카드",
"color": "#1E90FF"
}
}
응답 정보
필드 | 데이터 타입 | 설명 |
---|---|---|
id | Integer | 거래내역 id |
amount | Integer | 거래금액 |
place | string | 거래내역 내용 |
date | date format | 거래일 |
memo | string | 거래내역 메모 |
category | object | 수입 카테고리 |
account | object | 결제수단 카테고리 |
메서드 | 요청 URI | description |
---|---|---|
GET | api/transacions?accountbook_id&start_date&end_date | 수입 거래내역 생성 |
요청문 예시
localhost:5000/api/transactions?accountbook_id=1&start_date=2020.11.01&end_date=2020.12.31
응답 예시
[
{
"id": 1,
"amount": 7500,
"place": "맘스터치",
"date": "2020-11-30T15:00:00.000Z",
"memo": null,
"category": {
"id": 3,
"name": "경조사",
"color": "red"
},
"account": {
"id": 1,
"name": "삼성카드",
"color": "tomato"
}
}
]
응답 정보
필드 | 데이터 타입 | 설명 |
---|---|---|
id | Integer | 거래내역 id |
amount | Integer | 거래금액 |
place | string | 거래내역 내용 |
date | date format | 거래일 |
memo | string | 거래내역 메모 |
category | object | 수입 카테고리 |
account | object | 결제수단 카테고리 |
메서드 | 요청 URI | description |
---|---|---|
GET | api/categories/income/?accountbook_id | 수입 카테고리 조회 |
요청문 예시
localhost:5000/api/categories/income?accountbook_id=1
요청 변수 정보
요청 변수명 | 데이터 타입 | 필수 여부 | 기본값 | 설명 |
---|---|---|---|---|
accountbook_id | Integer | Y | - | 조회하고자 하는 가계부 고유 식별 번호 |
응답 예시
[
{
"id": 1,
"name": "타행이체",
"color": "tomato"
},
{
"id": 2,
"name": "중고판매",
"color": "dodgerblue"
},
{
"id": 3,
"name": "급여",
"color": "red"
},
...
]
응답 정보
필드 | 데이터 타입 | 설명 |
---|---|---|
id | Integer | 해당 가계부 내에 존재하는 수입 카테고리 고유 식별 번호 |
name | String | 해당 가계부 내에 존재하는 수입 카테고리 이름 |
color | String | 해당 가계부 내에 존재하는 수입 카테고리 라벨의 색상 |
메서드 | 요청 URI | description |
---|---|---|
GET | api/categories/expenditure/?accountbook_id | 가계부에 속한 지출 카테고리 조회 |
요청문 예시
localhost:5000/api/categories/expenditure?accountbook_id=1
요청 변수 정보
요청 변수명 | 데이터 타입 | 필수 여부 | 기본값 | 설명 |
---|---|---|---|---|
accountbook_id | Integer | Y | - | 조회하고자 하는 가계부 고유 식별 번호 |
응답 예시
[
{
"id": 1,
"name": "식사",
"color": "tomato"
},
{
"id": 2,
"name": "생활",
"color": "dodgerblue"
},
{
"id": 3,
"name": "경조사",
"color": "red"
},
{
"id": 4,
"name": "교육",
"color": "green"
}
]
응답 정보
필드 | 데이터 타입 | 설명 |
---|---|---|
id | Integer | 해당 가계부 내에 존재하는 지출 카테고리 고유 식별 번호 |
name | String | 해당 가계부 내에 존재하는 지출 카테고리 이름 |
color | String | 해당 가계부 내에 존재하는 지출 카테고리 라벨의 색상 |
메서드 | 요청 URI | description |
---|---|---|
GET | api/accounts/?accountbook_id | 계좌(결제수단) 목록 조회 |
요청문 예시
localhost:5000/api/accounts?accountbook_id=1
요청 변수 정보
요청 변수명 | 데이터 타입 | 필수 여부 | 기본값 | 설명 |
---|---|---|---|---|
accountbook_id | Integer | Y | - | 조회하고자 하는 가계부 고유 식별 번호 |
응답 예시
[
{
"id": 1,
"name": "삼성카드",
"color": "tomato"
},
{
"id": 2,
"name": "국민카드",
"color": "dodgerblue"
},
{
"id": 3,
"name": "농협카드",
"color": "red"
},
{
"id": 4,
"name": "우리카드",
"color": "blue"
},
{
"id": 5,
"name": "신한카드",
"color": "green"
}
]
응답 정보
필드 | 데이터 타입 | 설명 |
---|---|---|
id | Integer | 해당 가계부 내에 존재하는 결제수단 고유 식별 번호 |
name | String | 해당 가계부 내에 존재하는 결제수단 이름 |
color | String | 해당 가계부 내에 존재하는 결제수단 라벨의 색상 |