공통 사항

기본 사항

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 방송에서 좋아요 등록, 해제 및 등록 여부 조회시 주체
  • 방송신고 - 신고자정보