오늘은 팀원들과 의논해서 팀프로젝트 구현에 앞서 프로젝트 설계를 했다.
팀원들 말을 들어보니 나만 이번 심화주차 내용들을 다 이해 못한게 아니라서 다행이었다는...
그래서 다음주에 개발해볼 설계 내용이다.
ERD
ERD를 그려주신건 슬기님... 아이패드 갓..
와이어프레임도 완성했다.
와이어 프레임
여기서도 수고해주신 슬기님과 아이패드...
API명세
기능 | Method | URL | RequestHeader | Request | Response | ResponseHeader |
회원가입 | POST | /api/user/signup | { ”username” : “leee”, ”password” : “1234”, ”profilename” : “seung”, ”introduce” : “안녕하세요” } |
{ "msg": "회원가입 성공", "statusCode": 200 } |
||
프로필 수정 | PUT | /api/profile | Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJiaW4xMjM0IiwiZXhwIjoxNjY5ODcwNDUyLCJpYXQiOjE2Njk4NjY4NTJ9.mm8wgaV8M70hidhPX4Ut6UONZGaxjA1KnOJT1mO59Xc | { ”profilename” : “seung2”, ”introduce” : “안녕요” } |
{ ”profilename” : “seung2”, ”introduce” : “안녕요” } |
|
비밀번호 수정 | PUT | /api/profile/password | Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJiaW4xMjM0IiwiZXhwIjoxNjY5ODcwNDUyLCJpYXQiOjE2Njk4NjY4NTJ9.mm8wgaV8M70hidhPX4Ut6UONZGaxjA1KnOJT1mO59Xc | { ”password” : “1234”, ”newpassword” : “4321” } |
{ "msg": "비밀번호 수정 성공", "statusCode": 200 } |
|
로그인 | POST | /api/user/login | { "username": "seulgi12", "password": "a1234" } |
{ "msg": "로그인 성공", "statusCode": 200 } |
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJiaW4xMjM0IiwiZXhwIjoxNjY5ODcwNDUyLCJpYXQiOjE2Njk4NjY4NTJ9.mm8wgaV8M70hidhPX4Ut6UONZGaxjA1KnOJT1mO59Xc | |
로그아웃 | POST | /api/user/logout | { /redirect:/ } |
|||
게시물 전체 조회 (뉴스피드 기능) | GET | /api/post | { "id": 1, ”title": "게시글1", ”image” : “url/image”, "username": "bin1234" } { "id": 2, ”title": "게시글2", ”image” : “url/image” "username": "bin12345" } { "id": 3, ”title": "게시글3", ”image” : “url/image” "username": "bin123456" } |
|||
게시물 단건 조회 | GET | /api/post/{id} | { "id": 1, ”title": "게시글1", ”image” : “url/image”, "content": "내용1", "username": "bin1234", "createdAt": "2022-12-01T12:52:06.729608", "modifiedAt": "2022-12-01T12:52:06.729608" } |
|||
게시물 생성 | POST | /api/post | Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJiaW4xMjM0IiwiZXhwIjoxNjY5ODcwNDUyLCJpYXQiOjE2Njk4NjY4NTJ9.mm8wgaV8M70hidhPX4Ut6UONZGaxjA1KnOJT1mO59Xc | { ”title": "게시글1", ”image” : “url/image”, "content": "내용1" } |
{ /redirect:/ } |
|
게시물 수정 | PUT | /api/post/{id} | Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJiaW4xMjM0IiwiZXhwIjoxNjY5ODcwNDUyLCJpYXQiOjE2Njk4NjY4NTJ9.mm8wgaV8M70hidhPX4Ut6UONZGaxjA1KnOJT1mO59Xc | { ”title": "게시글2", ”image” : “url/image”, "content": "내용3" } |
{ /redirect:/ } |
|
게시물 삭제 | DELETE | /api/post/{id} | Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJiaW4xMjM0IiwiZXhwIjoxNjY5ODcwNDUyLCJpYXQiOjE2Njk4NjY4NTJ9.mm8wgaV8M70hidhPX4Ut6UONZGaxjA1KnOJT1mO59Xc | { /redirect:/ } |
||
댓글 작성 | POST | /api/comment | Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJiaW4xMjM0IiwiZXhwIjoxNjY5ODcwNDUyLCJpYXQiOjE2Njk4NjY4NTJ9.mm8wgaV8M70hidhPX4Ut6UONZGaxjA1KnOJT1mO59Xc | { ”postId” : 1, ”comment” : “안이뻐요” } |
{ /redirect:/api/post/1 } |
|
댓글 수정 | PUT | /api/comment/{id} | Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJiaW4xMjM0IiwiZXhwIjoxNjY5ODcwNDUyLCJpYXQiOjE2Njk4NjY4NTJ9.mm8wgaV8M70hidhPX4Ut6UONZGaxjA1KnOJT1mO59Xc | { ”comment” : “사실 예뻐요” } |
{ /redirect:/api/post/1 } |
|
댓글 삭제 | DELETE | /api/comment/{id} | Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJiaW4xMjM0IiwiZXhwIjoxNjY5ODcwNDUyLCJpYXQiOjE2Njk4NjY4NTJ9.mm8wgaV8M70hidhPX4Ut6UONZGaxjA1KnOJT1mO59Xc | { /redirect:/api/post/1 } |