HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🌲
Resume - 형욱 SAMPLE
/
🖼️
프로젝트 관리 (1)
/
♟️
API 설계
/
✍️
사용자는 대결 상대를 찾기 위해 대결 공고를 작성한다.
✍️

사용자는 대결 상대를 찾기 위해 대결 공고를 작성한다.

Related to 리팩터링 목록 (🧨 API & Sequence diagram) 1
Method
POST
BE.담당자
End Point
/api/matches
Group
Matches
MoSCow
Must have
진행상태
완료
Related to 리팩터링 목록 (🧨 API & Sequence diagram) 2
Related to 리팩터링 목록 (🧨 API & Sequence diagram)
최종본

최종본

🍭
최종 확정 일자 : 2022-00-00 (?)
  • 변경 사항
    • 변경 사항이 있다면 작성해주세요.
sequenceDiagram 액터 ->> Client: 대결 공고 작성 요청 Client->>API_Server: POST /api/matches Note over Client, API_Server: 대결 공고 작성하는 API 요청 API_Server ->> Match : 대결 공고 작성 요청 Match -->> API_Server : 매치 응답 및 예외처리 API_Server -->> Client : 매치 응답 및 에외처리 Client -->> 액터 : UI 업데이트

Request

{ "title": String, "matchDate": String, "matchType": String, "teamId" : Number, "participants": Number, // 출전 인원 수 "sportsCategory": String, "content": String, }

Response

notion image
  • 글쓰기 버튼을 누른다.
  • 종목 선택을 한다.
    • 모든 종목 다 뽑는다.
  • 개인전을 선택한다.
    • 개인전 선택의 경우 인원을 1로 default 시킨다 ?
  • 팀전을 선택한다.
    • 해당 종목을 가지고 내가 리더인 팀들만 조회 가능하게 한다.
    • 팀 선택을 하지 않으면 글 등록 못하게 한다.
 
홀리 몰리
  • 글쓰기 버튼을 클릭한다.
    • → 사용자에 대한 정보 API 요청(본인이 리더인 팀 정보)
  • 프론트에서는 해당 정보들을 가지고 유효성 검사를 한다.
    • 개인전일 경우
      • 종목 : All
      • 인원 선택 : 1명 고정
      • 팀 선택 : 비활성화
    • 팀전인 경우
      • 종목 : 본인이 리더인 팀의 스포츠 목록만 세팅
      • 팀 선택 : 스포츠 종목을 선택하면 해당 스포츠 종목의 본인이 팀 리더인 팀 목록 조회
  • 글쓰기 버튼을 클릭한다.
    • 백엔드에서는 팀전이라면 해당 회원이 그 팀의 리더인지 확인 후에 저장한다.
 
NULL
팀전일때,
  • 종목을 먼저 선택하게 한다. (종목을 선택하지 않으면 팀선택 불가능)
  • 내가 팀 리더인 팀 중에 선택한 종목에 해당하는 팀을 불러온다. (API 호출이든, JS로든)
  • 종목, 팀 선택이 완료되었다면 글쓰기를 누를 수 있다.
 
  • 백엔드에서는 더블 체킹
    • 팀전인지
    • 종목이 선택되었는지
    • 선택한 종목에 해당하는 팀인지
    • 내가 팀 리더인지