forked from codesquad-members-2023/todo-max
-
Notifications
You must be signed in to change notification settings - Fork 1
API 명세서
JeeIn Lee edited this page Jul 21, 2023
·
6 revisions
기능 | HTTP Method | URL |
---|---|---|
로그인 | POST |
/api/login |
Access Token 재발급 | POST |
/api/auth/reissue-access-token |
회원 가입 | POST |
/api/signup |
로그인
{
"email": "[email protected]",
"password": "1234"
}
{
"statusCode": 200,
"message":{
"accessToken": "Access Token",
"refreshToken": "Refresh Token"
}
}
{
"statusCode": 401,
data": "비밀번호가 일치하지 않거나 없는 회원입니다."
}
Access Token 재발급
{
"refreshToken": "Refresh Token"
}
{
"statusCode": 200,
"message":{
"accessToken": "Access Token",
"refreshToken": "Refresh Token"
}
}
{
"statusCode": 401,
"message":{
"exceptionType": "MALFORMED_JWT_EXCEPTION",
"message": "잘못된 형식의 토큰입니다."
}
}
{
"statusCode": 401,
"message":{
"exceptionType": "EXPIRED_JWT_EXCEPTION",
"message": "기한이 만료되었습니다."
}
}
회원 가입
{
"email": "이메일",
"password": "비밀번호"
}
{
"statusCode": 200
}
{
"statusCode": 400,
"data": "해당 이메일은 이미 가입된 이메일 입니다. : [email protected]"
}
기능 | HTTP Method | URL |
---|---|---|
컬럼/카드 목록 불러오기 | POST |
/api/columns |
카드 등록 | POST |
/api/columns/{columnId}/cards |
카드 제목/내용 수정 | POST |
/api/cards/{cardId} |
카드 위치 변경 | POST |
/api/columns/{columnId}/cards/{cardId} |
카드 삭제 | POST |
/api/columns/{columnId}/cards/{cardId} |
컬럼/카드 목록 조회
- Authorization: Bearer {accessToken}
{
"statusCode": 200,
"data": [
{
"columnId": 1,
"columnTitle": "해야할 일",
"cards": [
{
"id": 1,
"title": "GitHub 공부하기",
"content": "stash 개념 학습하기"
},
{
"id": 2,
"title": "스터디 발표 준비",
"content": "데이터베이스 파티셔닝 자료 조사"
}
]
},
{
"columnId": 2,
"columnTitle": "하고 있는 일",
"cards": [
{
"id": 3,
"title": "알고리즘 문제 풀기",
"content": "백준 14712, 15662번 풀기"
},
{
"id": 5,
"title": "AWS 공부하기",
"content": "EC2, RDS 개념 학습"
},
{
"id": 7,
"title": "WAS 미션 2단계 수행",
"content": "세션 구현하기"
},
{
"id": 8,
"title": "JWT 공부하기",
"content": "JWT 개념 및 장단점 학습하기"
}
]
},
{
"columnId": 3,
"columnTitle": "완료한 일",
"cards": [
{
"id": 6,
"title": "React 공부하기",
"content": "상태 관리 학습하기"
},
{
"id": 9,
"title": "WAS 미션 1단계 수행",
"content": "POST로 회원가입 구현하기"
},
{
"id": 10,
"title": "Redis 공부하기",
"content": "Redis 개념 및 설정 방법 학습하기"
},
{
"id": 11,
"title": "Kafka 공부하기",
"content": "Kafka 메시지 개념 학습하기"
},
{
"id": 12,
"title": "DDD 공부하기",
"content": "DDD 어그리거트에 대해 학습하기"
}
]
}
]
}
카드 등록
카드 제목/내용 수정
{
"id": 1,
"title": "수정한 카드 제목",
"content": "수정한 카드 내용"
}
[https://papababo.tistory.com/entry/HTTP-METHOD-PUT-vs-PATCH-차이점](https://papababo.tistory.com/entry/HTTP-METHOD-PUT-vs-PATCH-%EC%B0%A8%EC%9D%B4%EC%A0%90)
- 제목, 내용 중 하나만 수정해도 제목, 내용 다 보내주기
200 OK
{
"statusCode": 200
"data": {
"id": 1,
"title": "수정한 카드 제목",
"content": "수정한 카드 내용"
}
}
카드 위치 변경
- prev_tdl_card_id 는 현재 카드의 위에 있는 카드의 id
-
fromColumnId
와toColumnId
가 동일하면 prev_tdl_card_id 만 변경. - 카드 위치가 맨 위이면 prev_tdl_card_id는 0이 넘어온다.
{
"id": 3, // 이동한 카드의 아이디
"cardTitle" : "title",
"previousCardId": 2, // 이전 카드의 id
"nextCardId": 5, // 다음 카드의 id
"toColumnId": 2, // 수정된 컬럼 아이디
"previousColumnTitle": "해야 할 일",
"currentColumnTitle": "완료 한 일"
}
- toColumnId 가 변경된 게 없으면 컬럼 내에서 이동한 것
{
"id": 3, // 이동한 카드의 아이디
"previousCardId": 2, // 이전 카드의 가중치 값
"nextCardId": 5, // 다음 카드의 가중치 값
"toColumnId": 2, // 수정된 컬럼 아이디, title 필요, 프론트와 협의 필요
"previousColumnTitle": "해야 할 일",
"currentColumnTitle": "완료 한 일"
}
{
"id": 3, // 이동한 카드의 아이디
"previousCardId": 2, // 이전 카드의 가중치 값
"nextCardId": 5, // 다음 카드의 가중치 값
"toColumnId": 2, // 수정된 컬럼 아이디, title 필요, 프론트와 협의 필요
"previousColumnTitle": "해야 할 일",
"currentColumnTitle": "완료 한 일"
}
{
"id": 3, // 이동한 카드의 아이디
"previousCardId": 2, // 이전 카드의 가중치 값
"nextCardId": 5, // 다음 카드의 가중치 값
"toColumnId": 1, // 수정된 컬럼 아이디, title 필요, 프론트와 협의 필요
"previousColumnTitle": "해야 할 일",
"currentColumnTitle": "해야 할 일"
}
id=1
value=1000
id=2
value=2000
id=3
value=3000
- 이동 후 카드의 위치를 보내준다
{
"id": 1
}
카드 삭제
기능 | HTTP Method | URL |
---|---|---|
활동 로그 목록 조회 | GET |
/api/histories?historyId={historyId}&count={count} |
활동 로그 전체 삭제 | DELETE |
/api/histories |
활동 로그 목록 조회
{
"statusCode": 200,
"message": {
"histories": [
{
"id": 48,
"action": "MOVE",
"cardTitle": "카드",
"previousColumnTitle": "제목2",
"currentColumnTitle": "제목1",
"actionDatetime": "2023-07-13T17:29:55"
},
{
"id": 47,
"action": "MOVE",
"cardTitle": "카드",
"previousColumnTitle": "제목2",
"currentColumnTitle": "제목1",
"actionDatetime": "2023-07-13T16:37:27"
},
{
"id": 46,
"action": "MOVE",
"cardTitle": "카드",
"previousColumnTitle": "제목2",
"currentColumnTitle": "제목1",
"actionDatetime": "2023-07-13T16:37:26"
},
{
"id": 45,
"action": "MOVE",
"cardTitle": "카드",
"previousColumnTitle": "제목2",
"currentColumnTitle": "제목1",
"actionDatetime": "2023-07-13T16:26:44"
},
{
"id": 44,
"action": "MOVE",
"cardTitle": "카드",
"previousColumnTitle": "제목2",
"currentColumnTitle": "제목1",
"actionDatetime": "2023-07-13T16:26:43"
},
{
"id": 43,
"action": "MOVE",
"cardTitle": "카드",
"previousColumnTitle": "제목2",
"currentColumnTitle": "제목1",
"actionDatetime": "2023-07-13T16:21:42"
},
{
"id": 42,
"action": "MOVE",
"cardTitle": "카드",
"previousColumnTitle": "제목2",
"currentColumnTitle": "제목1",
"actionDatetime": "2023-07-13T16:21:41"
},
{
"id": 41,
"action": "MODIFY",
"cardTitle": "카드",
"actionDatetime": "2023-07-13T16:21:39"
},
{
"id": 40,
"action": "DELETE",
"cardTitle": "카드",
"actionDatetime": "2023-07-13T16:06:33"
},
{
"id": 39,
"action": "CREATE",
"cardTitle": "카드",
"actionDateTime": "2023-07-13T16:06:32"
}
],
"hasNext": true
}
}
- /api/histories?historyId={historyId}&count={count}
- count: 한번에 불러올 로그 개수