console.log
[설계] API 명세서 본문
완료 / 사용X / 테스트전 | ||||||||||||||
/api/v1 | 기능명 | 요청 | 파라미터 | 반환값 | 완료여부 | |||||||||
메서드 | URL | 위치 | 속성 | 데이터 타입 | 설명 | 위치 | 속성 | 데이터 타입 | 설명 | |||||
프로필 /profile |
프로필 등록(요청X) | POST | body | profileId | string | 프로필 ID = 사용자 ID (PK) | O | |||||||
body | nickname | string | 닉네임 | |||||||||||
body | image | string | 프로필이미지 | |||||||||||
프로필 정보 | GET | header | userId | string | 사용자 ID PK) | body | nickname | string | 닉네임 | O | ||||
body | image | string | 프로필이미지 | |||||||||||
body | eco | double | 에코 | |||||||||||
body | volume | double | 볼륨 | |||||||||||
프로필 수정 | PUT | body | nickname | 닉네임 | O | |||||||||
body | eco | double | 에코 | |||||||||||
body | volume | double | 볼륨 | |||||||||||
프로필 중복검사 | GET | /check/{nickname} | query | nickname | string | 닉네임 | boolean |
true : 닉네임 사용 가능 false : 닉네임 사용 불가 |
O | |||||
SSE /SSE (8060) |
SSE 연결 | GET | /sse | query | nickname | string | 닉네임 | body | data | text/event-stream | SseEmitter | O | ||
body | args | object | 인자 | |||||||||||
type | string | 타입 (connection) | ||||||||||||
친구 요청 알림 (받는 사용자) | (요청 X) | body | args | object | 인자 | O | ||||||||
type | string | 타입 (request) | ||||||||||||
fromUserId | string | 보낸 사람 ID (PK) | ||||||||||||
toUserId | string | 받는 사람 ID (PK) | ||||||||||||
body | friendId | long | 친구 ID {PK) | O | ||||||||||
body | fromUserNickname | string | 친구 요청을 보낸 사용자 닉네임 | |||||||||||
친구 초대 알림 (받는 사용자) | (요청 X) | body | args | object | 인자 | O | ||||||||
type | string | 타입 (invite) | ||||||||||||
fromUserId | string | 보낸 사람 ID (PK) | ||||||||||||
toUserId | string | 받는 사람 ID (PK) | ||||||||||||
body | fromUserNickname | string | 친구 초대를 받은 사용자 닉네임 | |||||||||||
body | sessionId | string | 세션 ID | |||||||||||
친구 알림 /friend (8060) |
친구 요청 알림 (보낸 사용자) | POST | /request | body | fromUserNickname | string | 친구 요청을 보낸 사용자 닉네임 | O | ||||||
body | toUserNickname | string | 친구 요청을 받은 사용자 닉네임 | |||||||||||
body | friendId | long | 친구 ID {PK) | |||||||||||
친구 초대 알림 (보낸 사용자) | POST | /invite | body | fromUserNickname | string | 친구 초대를 보낸 사용자 닉네임 | O | |||||||
body | toUserNickname | string | 친구 초대를 받은 사용자 닉네임 | |||||||||||
body | sessionId | string | 세션 ID | |||||||||||
친구 /friend |
친구 찾기 목록 | GET | query | nickname | string | 사용자 닉네임 | body | nickname | string | 사용자 닉네임 | O | |||
body | image | string | 사용자 프로필 이미지 | |||||||||||
내 친구 목록 | GET | /my | query | nickname | string | 사용자 닉네임 | body | friendId | long | 친구 ID (PK) | O | |||
body | nickname | string | 친구 닉네임 | |||||||||||
body | image | string | 친구 프로필이미지 | |||||||||||
body | status | string | W : 요청 상태 A : 친구 상태 |
|||||||||||
친구 요청 | POST | body | fromUserNickname | string | 친구 요청을 보낸 사용자 닉네임 | body | long | 친구 ID (PK) | O | |||||
body | toUserNickname | string | 친구 요청을 받은 사용자 닉네임 | |||||||||||
친구 수락/취소 | PUT | body | friendId | long | 친구 ID {PK) | O | ||||||||
body | status | string | A : 친구 수락 X : 친구 거절/취소 |
|||||||||||
노래 /song |
노래 목록 | GET | body | songId | long | 노래 ID (PK) | O | |||||||
body | title | string | 제목 | |||||||||||
body | singer | string | 가수 | |||||||||||
body | album | string | 앨범명 | |||||||||||
body | image | string | 이미지 | |||||||||||
body | releaseDate | string (0000-00-00) | 발매일자 | |||||||||||
노래 상세 목록 | GET | /detail | body | songId | long | 노래 ID (PK) | O | |||||||
body | title | string | 제목 | |||||||||||
body | singer | string | 가수 | |||||||||||
body | album | string | 앨범명 | |||||||||||
body | image | string | 이미지 | |||||||||||
body | file | string | 노래 파일 | |||||||||||
body | time | string (00:00:00) | 시간 | |||||||||||
body | releaseDate | string (0000-00-00) | 발매일자 | |||||||||||
body | note | string | 시간음정 JSON | |||||||||||
body | lyricsList | list | 가사 목록 | |||||||||||
lyricsId | long | 가사 ID (PK) | ||||||||||||
verse | string | 한소절 | ||||||||||||
time | string (00:00:00) | 소절 시작 시간 | ||||||||||||
노래 상세 정보 | GET | /detail/{songId} | query | songId | long | 노래 ID (PK) | body | songId | long | 노래 ID (PK) | O | |||
body | title | string | 제목 | |||||||||||
body | singer | string | 가수 | |||||||||||
body | album | string | 앨범명 | |||||||||||
body | image | string | 이미지 | |||||||||||
body | file | string | 노래 파일 | |||||||||||
body | time | string (00:00:00) | 시간 | |||||||||||
body | releaseDate | string (0000-00-00) | 발매일자 | |||||||||||
body | note | string | 시간음정 JSON | |||||||||||
body | lyricsList | list | 가사 목록 | |||||||||||
lyricsId | long | 가사 ID (PK) | ||||||||||||
verse | string | 한소절 | ||||||||||||
time | string (00:00:00) | 소절 시작 시간 | ||||||||||||
내 애창곡 목록 | GET | /my | header | userId | string | 사용자 ID (PK) | body | songId | long | 노래 ID (PK) | O | |||
body | title | string | 제목 | |||||||||||
body | singer | string | 가수 | |||||||||||
body | album | string | 앨범명 | |||||||||||
body | image | string | 이미지 | |||||||||||
body | releaseDate | string (0000-00-00) | 발매일자 | |||||||||||
애창곡 등록/삭제 | POST | /my | header | userId | string | 사용자 ID (PK) | O | |||||||
body | songId | long | 노래 ID (PK) | |||||||||||
body | isLike | string | Y : 좋아요 N : 좋아요 취소 |
|||||||||||
사용자 노래 /singing |
사용자 노래 저장 | POST | header | userId | string | 사용자 ID (PK) | O | |||||||
body | songId | long | 노래 ID (PK) | |||||||||||
body | mode |
N : 일반 P : 퍼펙트스코어 O : 가사순서맞추기 R : 이어부르기 |
||||||||||||
body | score | int | 점수 | |||||||||||
body | totalSingingTime | string (00:00:00) | 총 노래 부른 시간 | |||||||||||
녹화 /recording |
내 녹화 목록 | GET | /my | header | userId | string | 사용자 ID (PK) | body | recordingId | long | 녹화 ID (PK) | O | ||
body | title | string | 제목 | |||||||||||
body | singer | string | 가수 | |||||||||||
body | file | string | 녹화 파일 | |||||||||||
body | registerDate |
string (0000-00-00 00:00:00)
|
등록 일시 | |||||||||||
body | status | string |
V : 노출 D : 삭제 S : 공유(노래자랑에 올라감) |
|||||||||||
녹화 저장 | POST | header | userId | string | 사용자 ID (PK) | O | ||||||||
body | songId | long | 노래 ID (PK) | |||||||||||
body | file | file | 녹화 파일 | |||||||||||
녹화 삭제 | DELETE | /{recordingId} | query | recordingId | long | 녹화 ID (PK) | O | |||||||
노래자랑 /singing-contest |
노래자랑 목록 | GET | header | userId | string | 사용자 ID (PK) | body | singingContestId | long | 노래 자랑 ID (PK) | O | |||
body | nickname | string | 사용자 닉네임 | |||||||||||
body | title | string | 제목 | |||||||||||
body | singer | string | 가수 | |||||||||||
body | file | string | 녹화 파일 | |||||||||||
body | likeCount | long | 게시글 좋아요 개수 | |||||||||||
body | isLike | boolean | 사용자 좋아요 여부 | |||||||||||
body | image | string | 프로필이미지 | |||||||||||
body | registerDate |
string (0000-00-00 00:00:00)
|
등록 일시 | |||||||||||
내 노래자랑 목록 | GET | /my | header | userId | string | 사용자 ID (PK) | body | singingContestId | long | 노래 자랑 ID (PK) | O | |||
body | title | string | 제목 | |||||||||||
body | singer | string | 가수 | |||||||||||
body | file | string | 녹화 파일 | |||||||||||
body | likeCount | long | 게시글 좋아요 개수 | |||||||||||
body | like(isLike) | boolean | 사용자 좋아요 여부 | |||||||||||
body | registerDate |
string (0000-00-00 00:00:00)
|
등록 일시 | |||||||||||
노래자랑 등록 | POST | /{recordingId} | query | recordingId | long | 녹화 ID (PK) | O | |||||||
노래자랑 삭제/신고 | PUT | body | singingContestId | long | 노래자랑 ID (PK) | O | ||||||||
body | status | string | D : 삭제 B : 신고 |
|||||||||||
노래자랑 좋아요/취소 | POST | /like | header | userId | string | 사용자 ID (PK) | body | likeCount | long | 게시글 좋아요 수 | O | |||
body | singingContestId | long | 노래자랑 ID (PK) | |||||||||||
body | isLike | string | Y : 좋아요 N : 좋아요 취소 |
|||||||||||
노래 설정 /song-setting |
내 노래 설정 | GET | /my | header | userId | string | 사용자 ID (PK) | body | eco | double | 에코 | O | ||
body | volume | double | 음량 | |||||||||||
노래 설정 수정 | PUT | header | songSettingId | string | 노래 설정 ID = 사용자 ID (PK) | O | ||||||||
body | eco | double | 에코 | |||||||||||
body | volume | double | 음량 | |||||||||||
노래방 /room |
방 목록 | GET | body | sessionId | string | 노래 자랑 ID (PK) | O | |||||||
body | title | string | 방제 | |||||||||||
body | mode | string |
N : 일반노래방 P : 퍼펙트싱어 O : 가사맞추기 R : 이어부르기 |
|||||||||||
body | userMaxCount | int | 최대 인원수 | |||||||||||
body | userCount | int | 현재 인원수 | |||||||||||
body | isPublic | string | Y : 공개방 N : 비공개방 |
|||||||||||
body | password | string | 비밀번호 | |||||||||||
방 정보 | GET | /{sessionId} | query | sessionId | string | 세션 ID | body | userId | string | 방장 ID (PK) | O | |||
body | title | string | 방제 | |||||||||||
body | mode | string |
N : 일반노래방 P : 퍼펙트싱어 O : 가사맞추기 R : 이어부르기 |
|||||||||||
body | userMaxCount | int | 최대 인원수 | |||||||||||
body | isPublic | string | Y : 공개방 N : 비공개방 |
|||||||||||
body | password | string | 비밀번호 | |||||||||||
body | userList | list<string> | 사용자 목록 | |||||||||||
세션 초기화 | POST | /session | body | sessionId | string | 세션 ID | O | |||||||
방 생성 | POST | /connection/{sessionId}/host | header | userId | string | 사용자 ID (PK) | body | token | string | 토큰 | O | |||
query | sessionId | string | 세션 ID | |||||||||||
body | title | string | 방제 | |||||||||||
body | mode | string |
N : 일반노래방 P : 퍼펙트싱어 O : 가사맞추기 R : 이어부르기 |
|||||||||||
body | userMaxCount | int | 최대 인원수 | |||||||||||
body | isPublic | string | Y : 공개방 N : 비공개방 |
|||||||||||
body | password | string | 비밀번호 | |||||||||||
방 입장 | POST | /connection/{sessionId} | header | userId | string | 사용자 ID (PK) | body | token | string | 토큰 (null이면 비밀번호 오류) | O | |||
query | sessionId | string | 세션 ID | |||||||||||
body | password | string | 비밀번호 (공개방이면 null) | |||||||||||
방 퇴장 | PUT | /out/{sessionId} | header | userId | string | 사용자 ID (PK) | O | |||||||
query | sessionId | string | 세션 ID | |||||||||||
방 삭제 | DELETE | /{sessionId} | query | sessionId | string | 세션 ID | O | |||||||
방 수정 | PUT | /{sessionId} | query | sessionId | string | 세션 ID | O | |||||||
body | title | string | 방제 | |||||||||||
body | mode | string |
N : 일반노래방 P : 퍼펙트싱어 O : 가사맞추기 R : 이어부르기 |
|||||||||||
body | userMaxCount | int | 최대 인원수 | |||||||||||
body | isPublic | string | Y : 공개방 N : 비공개방 |
|||||||||||
body | password | string | 비밀번호 | |||||||||||
예약 /reservation |
노래 목록 | GET | /{sessionId} | query | sessionId | string | 세션 ID | body | userId | string | 사용자 ID (PK) | O | ||
body | sessionId | string | 세션 ID (PK) | |||||||||||
body | songId | long | 노래 ID (PK) | |||||||||||
body | isPriority | string | Y : 우선예약 N : 일반예약 |
|||||||||||
노래 예약 | POST | header | userId | string | 사용자 ID (PK) | O | ||||||||
body | sessionId | string | 세션 ID (PK) | |||||||||||
body | songId | long | 노래 ID (PK) | |||||||||||
body | isPriority | string | Y : 우선예약 N : 일반예약 |
|||||||||||
예약 취소 | DELETE | header | userId | string | 사용자 ID (PK) | O | ||||||||
body | sessionId | string | 세션 ID (PK) | |||||||||||
body | songId | long | 노래 ID (PK) | |||||||||||
노래 시작 | POST | /sing | header | userId | string | 사용자 ID (PK) | O | |||||||
body | songId | long | 노래 ID (PK) | |||||||||||
노래 취소 | DELETE | /sing | header | userId | string | 사용자 ID (PK) | O | |||||||
body | songId | long | 노래 ID (PK) | |||||||||||
body | time | long | 노래 재생된 시간 (sec) | |||||||||||
랭킹 /ranking |
랭킹 목록 /daily : 일간(어제 기준) /weekly 주간(지난 주 월~일) /monthly 월간(지난 달 1일~말일) |
GET |
/daily /weekly /monthly |
header (필수 X) | userId | string | 로그인 시 토큰에서 꺼내는 값 | body | rankingList | list | 랭킹 목록 Top100 | O | ||
ranking | int | 노래 순위 | ||||||||||||
songId | long | 노래 ID | ||||||||||||
title | string | 노래 제목 | ||||||||||||
singer | string | 가수 | ||||||||||||
album | string | 앨범 제목 | ||||||||||||
favoriteSong | boolean | 애창곡 여부 | ||||||||||||
image | string | 앨범 이미지(경로) |
'프로젝트 > 싸리질러' 카테고리의 다른 글
[개발] 코딩 컨벤션 (0) | 2023.09.09 |
---|---|
[설계] 시스템 아키텍쳐 (0) | 2023.09.09 |
[설계] 시퀀스 다이어그램 (0) | 2023.09.04 |
[설계] Database (0) | 2023.09.04 |
[설계] 프로토타입 (0) | 2023.09.03 |