Skip to content

Instantly share code, notes, and snippets.

@therne
Last active December 20, 2015 18:39
Show Gist options
  • Save therne/6177138 to your computer and use it in GitHub Desktop.
Save therne/6177138 to your computer and use it in GitHub Desktop.
MoonlightDriver API Documentation

Codename 'MoonlightDriver' REST API Documentation


1. Summary

메인서버는 Google Web Toolkit (GWT)을 사용하며, Java EE로 작성되었다. 메인서버에 부속된 푸시서버는 Google Cloud Messaging(GCM) 기술을 사용하며, PHP로 작성되었다.

클라이언트단에서 서버로의 모든 호출은 비동기식으로 이루어지며(Asynchronize), 서버단에서 서블릿은 그 요청을 처리해 JSON 형태의 결과값을 HTTP Response로 반환한다.

서버에서 각각의 서블릿과 클라이언트의 엔진은 서로 대응된다. 서버에서 각각의 메서드와 클라이언트의 엔진 속 메서드는 서로 대응된다.

Base Server Information

Main URL : http://115.68.104.30:7777

API STATUS CODE
Status Description
SUCCESS 성공
FAILED_LESS_PARAMETER 파라미터 부족
FAILED_DB_CONNECTION 데이터스토어에 연결(쓰기) 실패
FAILED_TOKEN_INVALID 토큰이 일치하지 않음
FAILED_NO_PERMISSION 이 유저의 권한으론 액세스 불가
FAILED_ACCOUNT_INVALID 계정 불일치
FAILED_ALREADY_EXISTS 해당 아이디가 이미 있음
FAILED_NO 결과가 틀림
FAILED_UPLOAD 업로드 실패
FAILED_ALREADY_TAKEN 이미 방을 잡아버림
FAILED_NO_ROOM 이미 취소되었거나 없는 방 ID

이 코드들은 클라이언트와 서버의 Result 클래스에 모두 정의되어 있다.

Sample JSON Response
{
	"status": "SUCCESS" ,
	"yet_another_response" : ": >"
}

2. Account

POST /account/login AccountEngine.Login

Description

기사가 서버에 로그인할 때 사용됩니다.

URL Structure

http://115.68.104.30:7777/account/login

Request
Name Type Description
id String 아이디(이메일) 값
pw String 패스워드 (MD5)
Response
Sample JSON Response
{
	"token" : "" // 토큰값. 사용자의 개인적 정보에 접근할 때는 앞으로 토큰을 이용한다.
}
Status
Status Description
SUCCESS 성공
FAILED_DB_CONNECTION 데이터스토어에 연결 실패



POST /account/create AccountEngine.Register

Description

기사를 등록할때 사용됩니다.

URL Structure

http://115.68.104.30:7777/account/create

Request
Name Type Description
id String 아이디(이메일) 값
pw String 패스워드 (MD5)
profile_meta String 프로필 메타데이터
name String 실명 (UTF-8)
Response
Sample JSON Response
{
	"token" : "" // 토큰값. 사용자의 개인적 정보에 접근할 때는 앞으로 토큰을 이용한다.
}
Status
Status Description
SUCCESS 성공
FAILED_DB_CONNECTION 기사 등록 실패



POST /account/idexists AccountEngine.IdExists

Description

기사의 아이디(이메일)이 겹치는지 체크합니다. 회원가입단에서 사용.

URL Structure

http://115.68.104.30:7777/account/idexists

Request
Name Type Description
id String 아이디(이메일) 값
Response
Sample JSON Response
Status
Status Description
SUCCESS 아이디 중복 안됨
FAILED_ALREADY_EXISTS 해당 아이디가 이미 있음



POST /account/delete AccountEngine.Delete

Description

기사 계정을 삭제합니다.

URL Structure

http://115.68.104.30:7777/account/delete

Request
Name Type Description
token String 기사의 토큰 값
Response
Sample JSON Response
Status
Status Description
SUCCESS 삭제 성공
FAILED_DB_CONNECTION 데이터스토어에 연결 실패



3. Room

POST /room/new RoomEngine.New

Description

유저가 새로운 콜을 하나 만들때 사용됩니다.

URL Structure

http://115.68.104.30:7777/room/new

Request
Name Type Description
udid String 유저의 UDID 값
fee Integer 금액
locationFrom_Lat Float 유저가 있는 지점의 위도
locationFrom_Lon Float 유저가 있는 지점의 경도
locationTo String 도착 지점 (UTF-8)
phone String 자신의 휴대전화 번호
car String 자신의 자동차 (JSONArray)
Response
Sample JSON Response
{
	"id" : "<CALL_ID>" // 자신이 만든 방(콜)의 아이디를 반환받는다.
}
Status
Status Description
SUCCESS 성공
FAILED_DB_CONNECTION 방 생성 실패



POST /room/select RoomEngine.Select

Description

기사가 유저가 만든 방을 최종 선택할때 사용됩니다.

URL Structure

http://115.68.104.30:7777/room/select

Request
Name Type Description
token String 기사의 토큰값
id String 선택하려는 방 ID
phone String 자신의 휴대전화 번호
Response
Sample JSON Response
Status
Status Description
SUCCESS 성공
FAILED_ALREADY_TAKEN 다른 기사가 이미 방을 잡아버림
FAILED_NO_ROOM 이미 취소되었거나 없는 방 ID



POST /room/delete RoomEngine.Delete

Description

방을 삭제합니다. 기사랑 유저 모두 가능.

URL Structure

http://115.68.104.30:7777/room/delete

Request
Name Type Description
udid String 유저의 UDID 값 (선택적)
token String 기사의 토큰 값 (선택적)
Response
Sample JSON Response
Status
Status Description
SUCCESS 삭제 완료
FAILED_NO_ROOM 잘못된, 없는 방 ID
FAILED_DB_CONNECTION 방 삭제 실패



POST /room/exchange LocationEngine

Description

기사와 사용자가 서로 위치를 교환합니다. 자신이 기사일 경우에는 유저의 위치를 반환받고, 자신이 유저면 기사 위치를 반환받습니다.

URL Structure

http://115.68.104.30:7777/room/exchange

Request
Name Type Description
isFromManager Boolean 기사인가?
udid String 유저의 UDID 값 (선택적)
token String 기사의 토큰 값 (선택적)
id String 방 ID
Location_Lat Float 자신 위치의 위도
Location_Lon Float 자신 위치의 경도
Response
Sample JSON Response
{
	"Location_Lat" : "12.345678", // 상대방의 위치의 위도이다.
	"Location_Lon" : "56.789012" // 상대방의 위치의 경도이다.
}
Status
Status Description
SUCCESS 교환 성공
FAILED_NO_ROOM 잘못된, 없는 방 ID
FAILED_DB_CONNECTION 데이터스토어에 연결 실패



POST /room/call RoomEngine.Call

Description

기사와 사용자가 서로 전화할수 있게 전화번호를 줍니다.

URL Structure

http://115.68.104.30:7777/room/call

Request
Name Type Description
isFromManager Boolean 기사인가?
udid String 유저의 UDID 값 (선택적)
token String 기사의 토큰 값 (선택적)
id String 방 ID
Response
Sample JSON Response
{
	"phone" : "01012345678" // 상대방의 번호이다.
}
Status
Status Description
SUCCESS 가져오기 성공
FAILED_NO_ROOM 잘못된, 없는 방 ID
FAILED_DB_CONNECTION 데이터스토어에 연결 실패



POST /room/get RoomEngine.Get

Description

기사가 자신의 위치로부터 반경 몇m 이내의 콜 정보를 가져옵니다.

URL Structure

http://115.68.104.30:7777/room/get

Request
Name Type Description
token String 기사의 토큰 값 (선택적)
meter Integer 반경거리
locationFrom_Lat Float 자신 위치의 위도
locationFrom_Lon Float 자신 위치의 경도
Response
Sample JSON Response
{
	"status" : "SUCCESS",
	"callCount" : "3",
	"calls" :
	[
		{
			"id" : "<방 ID>",
			"date" : "<생성일자>",
			"fee" : "5000",
			"fromLocation_Lat" : "12.345678", // 유저 위치의 위도
			"fromLocation_Lon" : "56.789012", // 유저 위치의 경도
			"toLocation" : "역삼동 현대아파트",    // 유저 목적지
		},
		... callCount만큼
	]
}
Status
Status Description
SUCCESS 가져오기 성공
FAILED_DB_CONNECTION 데이터스토어에 연결 실패



Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment