공통 사항
기본 사항
API는 크게 2가지 권한으로 되어 있다. User API와 Admin API로 구분된다.
- UserAPI - 자신이 만든 방송에 대한 관리
- Admin API - 애플리케이션 내의 모든 방송에 대한 관리
- 모든 API는 아래의 엔드포인트로 접근한다.
- 모든 API는 HTTPS로 요청한다.
- 모든 API 요청시 HTTP 헤더에 인증 토큰을 포함한다.
- 응답과 요청의 모든 데이터는 JSON 형식을 따른다.
공통 HTTP 요청 헤더
- Authorization: Bearer {access_token}
- Content-Type: application/json; charset=utf-8 (HttpMethod type이 POST, PUT, PATCH 인 경우에는 필수)
- Accept: application/json
응답
- 성공일 경우 HTTP 상태 코드 200이 반환된다.
- 인증 오류일 경우 HTTP 상태 코드 401이 반환된다.
- 서버 오류일 경우 HTTP 상태 코드 500이 반환된다.
- 그외의 오류들은 각API의 응답코드를참고한다.
방송
방송 타입
- BROADCASTED: 라이브 방송으로, 라이브 종료 여부에 따라 LIVE 또는 VOD 상태를 가질 수 있다.
- UPLOADED: 미리 만들어진 파일을 업로드 하는 방송으로, 파일 업로드 및 트랜스코딩 성공 후 VOD 상태를 가질 수 있다.
방송 상태
서비스 가능한 상태는 다음과 같다.
- LIVE: 방송 타입이 BROADCASTED, 라이브 중인 방송의 상태이다.
- VOD: 방송 타입이 BROADCASTED 라이브 방송이 종료된 경우와, 타입이 UPLOADED 이며 성공적으로 트랜스코딩 과정을 거친 방송의 상태이다.
- 그 외, 방송 리소스는 존재 하나 유효하지 않은 상태(CREATED, TERMINATED, BANNED)의 방송에 접근 시 에러 응답이 반환된다.
기타
- FlipFlop 서비스는 애플리케이션 단위로 인증을 처리한다.
- 사용자 관리는 각 애플리케이션에서 관리한다. 사용자 정보가 반드시 필요한 API는 다음과 같다.
- 방송 생성 - 생성자 정보 입력
- 방송목록 조회시 - 특정 user 기준으로 조회할 경우
- 방송목록 조회시 - 특정 user가 '좋아요'로 등록한 방송 목록을 조회할 경우
- 라이브 방송에서 시청자로 등록, 유지 및 해제시 주체
- VOD 방송에서 좋아요 등록, 해제 및 등록 여부 조회시 주체
- 방송신고 - 신고자정보