pin

pinId     : number
userId    : number
title     : string
content   : string
picKey    : string
picUrl    : string

comment

commentId  : number
userId     : number
pinId      : number
content    : string
createdAt  : Date

`localhost:3000/api/pin?page=${1}&pageCount=${10}`

Reponse Form

isSuccess : boolean
message   : string
result    : object
{
  isSuccess: true,
  message: '',
  result: {
  }
}

JWT Error 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

제약 조건 : targetmine 때만 토큰 필요

태그 검색, 모든 핀 중에서 검색, 내 핀 중에서 검색 | | | 무한 스크롤 | | | | | | | 민영님 | | | | 게시글 작성 페이지 | 핀 등록 | 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 가 동일 | | | 리댓글(보류) | | | | | | | | | 댓글 좋아요, 아이디 태그 | | | 좋아요(보류) | | | | | | | | | |