Skip to content

HTTP API Specification

Rhee Jung In edited this page Dec 9, 2021 · 5 revisions

LiveClass에서 사용되는 HTTP api의 목록입니다.

모든 api는 private api로, LiveClass에 가입한 유저만이 인증 후 사용할 수 있습니다.

네이버 로그인을 통해 서비스에 가입/로그인 후에 session-cookie를 이용해 인증합니다.

인증되지 않은 사용자의 요청의 경우 status code 404 (Unauthorized Request) Response를 보내면서 요청을 거부합니다.

모든 api 요청은 서버의 http://[Base Url]/api/[api endpoint]의 형태로 사용하실 수 있습니다.

  • GET /me라고 쓰여 있는 api를 사용하고 싶으시다면 http://[Base Url]/api/me로 HTTP GET request를 보내면 됩니다.

Lobby API

Lobby Page에서 사용되는 API들입니다.

GET /lobby/classes

Lobby Page에서 보일 유저가 속한 Class 목록 가져오는 api입니다.

  • Request
Nothing
  • Return
{
  classes:                  // array or classes
  {                
    uuid: string;           // class uuid
    title: string;          // class title
    subtitle: string;       // class subtitle
    memberType: MemberType; // student or instructor
  }[];
  status: number;
}

POST /lobby/class

새 Class를 만들 때 사용하는 api입니다.

  • Request
{
  title: string,
  subtitle: string
}
  • Return
{
  class:
  {
    uuid: string;
    title: string;
    subtitle: string;
    memberType: MemberType.INSTRUCTOR; // instructor
  };
  status: number
}

PATCH /lobby/class

기존의 Class에 Join할 때 사용하는 API입니다. 이미 등록된 사용자는 등록되지 않습니다.

  • Request
{
  classUuid: string
}
  • Return
{
  class:
  {
    uuid: string;
    title: string;
    subtitle: string;
    memberType: MemberType.STUDENT; // student
  };
  status: number
}

Me API

GET /me

유저 본인의 정보를 가져올 때 사용되는 api입니다.

  • Request
Nothing
  • Return
{
  userName: string;
  id: number;
  status: number;
}

Auth API

유저 인증 관련된 api들입니다.

GET /auth/naver/

네이버 로그인을 시도합니다. 이 엔드포인트로 요청이 들어왔을 경우 네이버 로그인 api를 이용해서 로그인하는 창으로 리다이렉트됩니다.

GET /auth/naver/callback

네이버 로그인 callback url입니다. 네이버 로그인 성공 시 이 엔드포인트로 리다이렉트되며, 다시 클라이언트 페이지로 리다이렉트됩니다. 클라이언트 사이드에서 이 엔드포인트로 명시적으로 호출해선 안됩니다.


Translate API

번역 api입니다. 네이버 papago api를 호출해서 번역된 텍스트를 돌려줍니다.

현재 LiveClass에서 지원하는 언어인 영어, 한국어로만 번역할 수 있습니다.

주어진 문장의 언어를 papago language detection api로 분석한 후 영어 혹은 한국어이고 주어진 target language와 다를 경우 papago translation api를 호출해 번역합니다.

POST /translate

  • Request
{
  translateArray: string[];
  target: Language;  // "ko" or "en"
}
  • Request
{
  translated:
  {
    result: string;
    status: number;
  }[];
  status: number

Clone this wiki locally