10.11 항해 29일차 TIL

한우석·2021년 10월 11일
post-thumbnail

20조 REWIND Frontend

Team

  • Frontend : 오세명,한우석 (REACT)
  • Backend : 오준석,최선강 (SPRING)


REWIND란?

  • 그 동안 Backend,Frontend가 공부하고 정리했던 내용들을 각 프레임워크별 (Spring,React,Node.js)로 모두 공유할 수 있는 게시판을 구현하려고 합니다. 게시판은 기본적으로 메인페이지에 모든 프레임워크들의 게시글들이 한번에 보여지며 각 카테고리속에는 그에 해당하는 게시글들만 보여집니다. 유저는 로그인을 하여야 기본적인 서비스를 이용할 수 있습니다.

개인 프로젝트를 진행한 2주가 끝나고 다시 팀으로 프로젝트를 진행 하게 되었다.
팀에게 피해를 주지 않기 위해서 2주동안 정말 열심히 이해하려고 노력 했었는데, 마침 너무 좋은 분들을 팀으로 만나서 첫날부터 매끄럽게 진행이 되었다.

같이 React를 하시는 분은 공부를 오래 하셔서 정말 잘하시는 분이셨는데 API명세의 중요성을 설명 해주시면서 Request, Response, data-type 까지 정말 몇시간 동안 꼼꼼하게 신경쓰며 아래의 API명세서를 완성 하였다.

로그인/회원가입

기능     Method URLRequestResponse
로그인POST/login{ email: email< String >,
pw:pw < String >}
{result:"success"< String >,
token:token< String >,
nickname:nickname < String >}
{result:fail < String >,
errorMessage:""< String >,
httpStatus:"BAD_REQUEST"< String > }
회원가입POST/signup{email:email< String > ,
pw:pw< String > pwCheck:pwCheck< String >
nickname:nickname< String >}
{result:success< String >
result:fail< String >}
아이디 중복확인POST/signup/duplicate_id{ email:email < String > }{result:success< String > ,
result:fail< String >}
닉네임 중복확인POSTsignup/duplicate_nickname{ nickname:nickname < String > }{reslu:success< String>}
{result:fail< String > }
카카오GET/kakao/callback--

메인페이지

기능     Method URLRequest Response
게시글목록GET/posts/{page}-[ content : {
insertDt : insertDt< String >,
modifiedDt : modifiedDt< String >,
id : id< String >,
category : category< String >,
titile : titile< String >,
author : author< String >,
nickname : nickname< String >,
contents : contents< String >},
pageable : {
pageSize : 10,
pageNumber : 1},
last : last< String >,
totalPages : totalPages< Number >,
totalElements : totalElements< Number >,
size : size< Number >,
number : number< Number >,
first : < Boolean >,
last: < Boolean >,
numberOfElements : numberOfElements< Number >,],
...
]
카테고리 게시글 목록GET/posts/{category}/{page}-[content : {
insertDt : insertDt< String >,
modifiedDt : modifiedDt< String >,
id : id< String >,
category : category< String >,
titile : titile< String >,
author : author< String >,
nickname : nickname< String >,
contents : contents< String >
},
pageable : {
pageSize : 10,
pageNumber : 1
},
last : last< String >,
totalPages : totalPages< Number >,
totalElements : totalElements< Number >,
size : size< Number >,
number : number< Number >,
first : first< String >,
numberOfElements : numberOfElements< Number >,],
...
]

상세페이지

기능     MethodURLRequestResponse
게시글,댓글가져오기GET/post/{id}{id : postid< String >}{
category: category< String >,
title : title< String >,
author : userEmail< String >,
contents : contents< String >,
insertDt : insertDt< String >,
nickname : nickname< String >,
comments: []< List >
}}
게시글 수정POST/post/{id}{
id : postId< Number >,
title : title< String >,
contents : contents< String >,
category: category< String >
}
{
author: email< String >,
category: category< String >,
contents: newContents< String >,
id: postId< Number >,
insertDt: insertDt< String >,
nickname: nickname< String >,
title: newTitle< String >,
}
게시글 삭제DELETE/post/{id}-{result : 'success'< String >},
{result : 'fail'< String >}
댓글삭제DELETE  /comment/{id}-{reslut:success< String>}
{result:fail< String > }
댓글수정POST/comment/{id}{
id : commentId< String >,
comment : comment< String >,
}
{
result: 'success'< String >,
comment: {
comment: "sasd"< String >,
id: 42< Long >,
insertDt: "2021-10-14T22:15:58.574136"< String >,
modifiedDt: "2021-10-14T22:16:19.074515"< String >,
nickname: "오세명오세명"< String >,
post: {
author: userEmail< String >,
category: category< String >,
contents: content< String >,
id: 17< Long >,
insertDt: isoString< String >,
modifiedDt: isoSTring< String >,
nickname: userNickname< String >,
title: title< String >,
}
}
}
댓글작성POST/comment{
comment : comment< String >,
postId: unique post id< Number >
}
-

게시글 작성

기능     MethodURLRequestResponse
게시글등록POST/post{
category: category< String >
title:title< String >,
contents:contents< String >,
}
{
id : id< String >,
category: category< String >,
title : title< String >,
author : userEmail< String >,
contents : contents< String >,
insertDt : insertDt< String >,
nickname : nickname< String >,
comments: []< List >
}
{
result: 'fail'
}

시간이 없어 와이어프레임을 제대로 작성하지 못했었는데 일단 우리끼리만 이해하면 된다는 생각으로 작성했다..


오늘은 거의 명세만 하루종일 하다가 시간이 다 갔는데 그래도 명세를 확실히 잡은 느낌이라 전혀 아쉽지 않았던 것 같다.

profile
H/W 개발자에서 프론트 엔드 개발자로 전향 하고 있는 초보 개발자

0개의 댓글