개인 프로젝트를 진행한 2주가 끝나고 다시 팀으로 프로젝트를 진행 하게 되었다.
팀에게 피해를 주지 않기 위해서 2주동안 정말 열심히 이해하려고 노력 했었는데, 마침 너무 좋은 분들을 팀으로 만나서 첫날부터 매끄럽게 진행이 되었다.
같이 React를 하시는 분은 공부를 오래 하셔서 정말 잘하시는 분이셨는데 API명세의 중요성을 설명 해주시면서 Request, Response, data-type 까지 정말 몇시간 동안 꼼꼼하게 신경쓰며 아래의 API명세서를 완성 하였다.
| 기능 | Method | URL | Request | Response |
|---|---|---|---|---|
| 로그인 | 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 >} |
| 닉네임 중복확인 | POST | signup/duplicate_nickname | { nickname:nickname < String > } | {reslu:success< String>} {result:fail< String > } |
| 카카오 | GET | /kakao/callback | - | - |
| 기능 | Method | URL | Request | 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 >,], ... ] |
| 기능 | Method | URL | Request | Response |
|---|---|---|---|---|
| 게시글,댓글가져오기 | 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 > } | - |
| 기능 | Method | URL | Request | Response |
|---|---|---|---|---|
| 게시글등록 | 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' } |
시간이 없어 와이어프레임을 제대로 작성하지 못했었는데 일단 우리끼리만 이해하면 된다는 생각으로 작성했다..





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