2022-08-19
pinId : number
userId : number
title : string
content : string
picKey : string
picUrl : string
commentId : number
userId : number
pinId : number
content : string
createdAt : Date
`localhost:3000/api/pin?page=${1}&pageCount=${10}`
isSuccess : boolean
message : string
result : object
{
isSuccess: true,
message: '',
result: {
}
}
JWT 에러 존재
// JWT 토큰이 필요한 도메인에서는 다음의 에러가 발생할 수 있습니다.
{
isSuccess: false,
message: “토큰이 필요합니다.” || “만료된 토큰입니다.” || “유효하지 않은 토큰입니다.” || err.message,
result: {}
}
분류 | 기능 | Method | URI | JWT | Request | Response | Response(Error) | 프론트엔드 담당자/구현 여부 | 백엔드 담당자/구현 여부 | 비고 |
---|---|---|---|---|---|---|---|---|---|---|
인트로 페이지 | 페이지네이션(무한 스크롤) | 영은님 | ||||||||
회원가입 | POST | 영은님 | ||||||||
로그인 | POST | /api/login | - | { | ||||||
isSuccess: true, | ||||||||||
message: “로그인 이 성공했습니다.”, | ||||||||||
result: { |
accessToken: ‘토큰값’
}
} | {
isSuccess: false,
message: “로그인 이 실패했습니다.” || err.message
,
result: {}
} | 영은님 |
민석님 | 소셜 계정(카톡 등) 연동
토큰 내 간단한 유저 정보 받을 수 있음.
userId 영문자 포함 4글자 이상
password 영문자, 숫자, 특수문자 포함 4글자 이상
로그인 만료 시간 60분 |
| | 로그아웃 | POST | /api/logout | - | | | | 영은님 | | |
| | 회원탈퇴(보류) | DELETE | | | | | | | | |
| | | | | | | | | | | |
| 마이 페이지 | 내 프로필 조회 | GET | | - | 개수 | | | 먼저 끝나는 사람 | | |
| | 내 프로필 수정(보류) | PUT | | - | | | | | | |
| | 무한 스크롤(보류) | | | | | | | | | 내가 작성한 핀 목록을
무한 스크롤로 보여줌. |
| | | | | | | | | | | |
| 메인 페이지 | 헤더 | | | | | | | 민영님/완료
(로그인 및 회원가입 방식 결정되면
조건부 렌더링으로 수정할 예정) | | *** 로그인 여부에 따라 조건부 렌더링**
로그인 했을 시: 로고(홈, 메인 페이지), 핀 등록, 검색창, 프로필 아이콘(마이 페이지), 최근 본 핀 히스토리
로그인 안 했을 시:
로고, 검색창, 로그인, 회원가입 |
| | 핀 전체 조회 = 검색 | GET | /api/pin**?page=&count=&tag=&target=** | O (비고 참고) | - | {
isSuccess: true,
message: “Pin 조회에 성공했습니다.”,
result: {
pinList: [{
pinId: 1231212,
author: ‘pin 생성자’,
title: ‘pin 작성자’,
content: ‘pin 내용’,
tags: ‘pin Tag’,
picUrl: ‘http://’
}]
}
} | {
isSuccess: false,
message: “Pin 조회에 실패하였습니다.” || err.message
,
result: {}
}
JWT 에러 존재
- 문서 상단 확인 해주세요. | 먼저 끝나는 사람 | 수민님 | 1. 몇 페이지인지: page
2. 한 페이지당 몇 개인지: count
3. tag 검색: tag
4. 모든 핀 / 내 핀
: target
= all
/ mine
제약 조건
: target
이 mine
때만 토큰 필요
태그 검색,
모든 핀 중에서 검색, 내 핀 중에서 검색 |
| | 무한 스크롤 | | | | | | | 민영님 | | |
| 게시글 작성 페이지 | 핀 등록 | POST | /api/pin**?title=&content=&tags=** | O | {
picValuel: FormData
} | {
isSuccess: true,
message: “Pin 등록에 성공했습니다.”,
result: {
pin: {
pinId: 1231212,
author: ‘pin 생성자’,
title: ‘pin 제목’,
content: ‘pin 내용’,
tags: ‘pin Tag’,
picUrl: ‘http://’
}
}
} | {
isSuccess: false,
message: “Pin 등록에 실패하였습니다.” || err.message
,
result: {}
}
JWT 에러 존재
- 문서 상단 확인 해주세요. | 민영님/완료 | 수민님 | |
| | | | | | | | | | | |
| 상세 페이지 | 핀 상세 조회 | GET | /api/pin/:pinId | - | - | {
isSuccess: true,
message: “Pin 조회에 성공했습니다.”,
result: {
pin: {
pinId: 1231212,
author: ‘pin 생성자’,
title: ‘pin 제목’,
content: ‘pin 내용’,
tags: ‘pin Tag’,
picUrl: ‘http://’
}
}
} | {
isSuccess: false,
message: “Pin 조회에 실패하였습니다.” || err.message
,
result: {}
} | 창용님 | 수민님 | |
| | 핀 수정 | PUT | /api/pin/:pinId | O (비고 참고-본인확인) | {
title: “핀 제목”,
content: “핀 내용”,
tags: “태그A,태그B”,
} | {
isSuccess: true,
message: “Pin 수정에 성공했습니다.”,
result: {
pin: {
pinId: 1231212,
author: ‘pin 생성자’,
title: ‘pin 제목’,
content: ‘pin 내용’,
tags: ‘pin Tag’,
picUrl: ‘http://’
}
}
} | {
isSuccess: false,
message: “Pin 수정에 실패하였습니다.” || err.message
,
result: {}
}
JWT 에러 존재
- 문서 상단 확인 해주세요. | 창용님 | 수민님 | tags는 확정된 사항은 아니고,
구현되는 대로 Express가 받아지는지 확인해서 수정 가능
제약 조건
: JWT의 userId와 pinId의 작성자 userId 가 동일 |
| | 핀 삭제 | DEL | /api/pin/:pinId | O (비고 참고-본인확인) | - | {
isSuccess: true,
message: “Pin 삭제에 성공했습니다.”,
result: {}
} | {
isSuccess: false,
message: “Pin 삭제에 실패하였습니다.” || err.message
,
result: {}
}
JWT 에러 존재
- 문서 상단 확인 해주세요. | 창용님 | 수민님 | alert(”핀을 정말 삭제하시겠습니까?”)
: 확인/취소 버
제약 조건 : JWT의 userId와 pinId의 작성자 userId 가 동일
|
| | 댓글 전체 조회
(특정 핀 모든 댓글) | GET | /api/comment**?pinId=** | - | - | {
isSuccess: true,
message: “댓글 조회에 성공했습니다.”,
result: {
commentList: [{
commentId: 123,
author: “작성자”,
content: ‘댓글 내용’,
createdAt: ‘DATE Form’
}]
}
} | | 창용님 | 수범님 | |
| | 댓글 작성 | POST | /api/comment | O | {
pinId: 123432,
content: “댓글 내용”
} | {
isSuccess: true,
message: “댓글 작성에 성공했습니다.”,
result: {
comment: {
commentId: 123,
author: “작성자”,
content: ‘댓글 내용’,
createdAt: ‘DATE Form’
}
}
} |
JWT 에러 존재
- 문서 상단 확인 해주세요.
| 창용님 | 수범님 | |
| | 댓글 수정 | PUT | /api/comment/:commentId | O (비고 참고-본인확인) | {
content: “댓글 내용”
} | {
isSuccess: true,
message: “댓글 수정에 성공했습니다.”,
result: {
comment: {
commentId: 123,
author: “작성자”,
content: ‘댓글 내용’,
createdAt: ‘DATE Form’
}
}
} |
JWT 에러 존재
- 문서 상단 확인 해주세요. | 창용님 | 수범님 | 제약 조건
: JWT의 userId와 pinId의 작성자 userId 가 동일 |
| | 댓글 삭제 | DEL | /api/comment/:commentId | O (비고 참고-본인확인) | - | {
isSuccess: true,
message: “댓글 삭제에 성공했습니다.”,
result: {}
} |
JWT 에러 존재
- 문서 상단 확인 해주세요. | 창용님 | 수범님 | 제약 조건
: JWT의 userId와 pinId의 작성자 userId 가 동일 |
| | 리댓글(보류) | | | | | | | | | 댓글 좋아요, 아이디 태그 |
| | 좋아요(보류) | | | | | | | | | |