SeaJungg / rloging

크루 출석 관리 서비스
MIT License
2 stars 1 forks source link

[backend] Detail requirement about API spec #7

Open ttochi opened 1 year ago

ttochi commented 1 year ago

Detail requirement about API spec (WIP)

FE 개발하면서 필요한 데이터 정리할 겸, API spec을 상세화하여 요청합니다. 아래 상세한 API 포맷은 예시이며, 필요한 데이터가 있다면 어떤 형태로 serialize 해도 괜찮습니다!

1. Session List

[
    {
        // As-is
        "session_id": string,
        "name": string,
        "member_id": string,
        "launch_date": date,
        "application_fee": number,
        "create_date": date,
        "update_date": date,
         // Additional Request
        "username": string,
        "imageUrl": string,
    }
]

2. Session Detail

{
    // As-is
    "session_id": string,
    "name": string,
    "member_id": string,
    "launch_date": date,
    "application_fee": number,
    "create_date": date,
    "update_date": date,
    // Additional Request
    "username": string,
    "imageUrl": string,
    "place": string,
    "attendee": number,
    "total_attendee": number,
    "is_attendance": boolean,
    "is_supporter_welcome": boolean,
    "is_supporter_dj": boolean,
    "is_supporter_car": boolean,
}
SeaJungg commented 1 year ago

session 추가 내용

session detail 추가 내용

    {
        "session_id": "fa2605c4-54ff-448e-a200-1d2a9d5d26ac",
        "username": "정세아6337",
        "total_attendee_count": 1, #현재 신청자 수
        "attendee": [
            {
                "id": 1,
                "is_attendance": false,
                "is_supporter_welcome": true,
                "is_supporter_dj": true,
                "is_supporter_car": true,
                "create_date": "2022-12-11T14:43:50.722993+09:00",
                "update_date": "2022-12-11T14:43:50.723027+09:00",
                #삭제tbd "session_id": "fa2605c4-54ff-448e-a200-1d2a9d5d26ac",
                #user detail 연결 tbd "member_id": "4a517e56-b711-4bbe-a9d7-b4f1b0c8e934"
            }
        ],
        "imageUrl": "",
        "name": "집앞런",
        "description": "집앞을 뛰어봐요",
        "location": "세아집앞", 
        "launch_date": "2022-12-15T19:40:00+09:00",
        "max_attendee": 100, #세션 정원 수
        "application_fee": "3000",
        "create_date": "2022-12-11T13:44:34.550309+09:00",
        "update_date": "2022-12-11T13:44:34.550337+09:00",
        #삭제tbd "member_id": "4a517e56-b711-4bbe-a9d7-b4f1b0c8e934"
    }
SeaJungg commented 1 year ago

확정된 uri

method uri action
GET /session 세션 리스트 보기
POST /session 세션 만들기
GET /session/:session_id 세션 상세정보 보기
PUT /session/:session_id 세션 상세정보 수정하기

고민되는 uri

case1 ) uri 가 깔끔해 보이는듯한 uri

method uri action
POST /session/:session_id/checkin 세션 참석하기
POST /session/:session_id/attendance 세션에 참여완료한 멤버의 출석 처리
PUT /session/:session_id/action 세션 참여자의 일일 서포터 지원여부 변경

case2 ) db 친화적 uri

method uri action
POST /session_history 세션 참석하기
PUT /session_history 세션에 참여완료한 멤버의 출석 처리 , 세션 참여자의 일일 서포터 지원여부 변경