1. 회의 내용
빙비가 맡은 도메인에 대한 기능을 정의 해봅시다.
- 멤버 리스트
- 앨범의 멤버 리스트 조회
- Request
URL
: [GET] /api/v1/albums/{album_id}/participants- controller :
participants.ParticipantsController.java
@RestController @RequestMapping("/api/v1") public class ParticipantsController { @GetMapping("/albums/{album_id}/participants") public String test(@PathVariable("album_id") Long albumId){ // 예~뭐 이렇게 ㅇ_ㅇ // VO <- 저는 시켜먹는편이라서요.. (저는 안해먹어요) // Exception // } }
Content-Type
: application/jsonhearder
{ "Authorization" : "Bearer adfadsfs.asdfjklasdjfawe" }
HTTP Status Code
- 200 OK
Body
{ "data" : { "members" : [ { "id": 123, "nickname" : "Davie", "avatar": "https://s3주소", "role" : "OWNER", // [OWNER, ADMIN, MEMBER] }, { "id": 124, "nickname" : "BingGle", "avatar": "https://s3주소", "role" : "MEMBER", // [OWNER, ADMIN, MEMBER] }, { "id": 125, "nickname" : "Davie", "avatar": "https://s3주소", "role" : "MEMBER", // [OWNER, ADMIN, MEMBER] } ] } }
- 그룹 초대
- 회원 검색 조회
- Request
url
: [GET] /api/v1/members?email={이메일}- Query String
- email : String
content-type
: application/json- Response
- Description
- 따져야하는게
- 이미 초대되어있는 사람에 대해 검색한 경우 어떻게 처리?
- 없는 사람에 대해서는 status code와 response는 어떻게?
- status code
- 200 ok
- body
{ "data" : { { "id": 125, "nickname" : "Davie", "avatar": "https://s3주소", } } }
- Request
URL
: [POST] /api/v1/invitationsContent-Type
: application/jsonheader
{ "Authorization" : "Bearer asdfasdfsad" }
request body
{ "albumId" : 123, "targetMemberId": 124 }
- 고려사항
- 초대여부를 반환
Status Code
- 201 Created
Body
{ "data" : { // 없음. } }
- 그룹 설정
- 그룹(workspace = 앨범 = 그룹) 삭제
- Request
URL
:[DELETE]
/api/v1/albums/{album_id}Content-Type
: application/json- header
- Response
- Status Code
- 200 OK
- Body
{ "data" : { // 없음. } }
- Request
URL
: [PUT] /api/v1/albums/{album_id}Content-Type
: application/jsonHeader
request body
{ "title": "안녕 이건 수정 그룹 명이야", "familyMotto": "가훈입니다.", "thumbnail": "https://s3.adfasd" }
- Status Code
- 200 OK
- Body
{ "data" : { // 수정된 정보 그룹(앨범)에 대한 정보 } }
- 특별한 순간
- 특별한 순간 조회
- Description
- bookmark가 체크된 일기들에 대해 불러옵니다.
- Scroll Infinite Pagenation을 적용해야합니다!
- Request
URL
: [GET] /api/v1/albums/{album_id}/history?offsetContent-Type
: application/json- Response
- Status Code
- 200 OK
- Body
{ "data" : { "history": [ { "id" : 123, // 해당 일자 일기(Diary) id "title": "안녕나야", // 타이틀 "thumbnail" : "https://s3.sfads", // 해당 일자 일기 맨 처음 id "recordedAt" : "2021-12-07T00:00:00.000Z", // 일자 }, { "id" : 123, // 해당 일자 일기(Diary) id "title": "안녕나야", // 타이틀 "thumbnail" : "https://s3.sfads", // 해당 일자 일기 맨 처음 id "recordedAt" : "2021-12-07T00:00:00.000Z", // 일자 }, { "id" : 123, // 해당 일자 일기(Diary) id "title": "안녕나야", // 타이틀 "thumbnail" : "https://s3.sfads", // 해당 일자 일기 맨 처음 id "recordedAt" : "2021-12-07T00:00:00.000Z", // 일자 } ] } }
2. 결정사항
- 댓글에 대한 답을 꼭 수행해주세요