메인서버는 Google Web Toolkit (GWT)을 사용하며, Java EE로 작성되었다. 메인서버에 부속된 푸시서버는 Google Cloud Messaging(GCM) 기술을 사용하며, PHP로 작성되었다.
클라이언트단에서 서버로의 모든 호출은 비동기식으로 이루어지며(Asynchronize), 서버단에서 서블릿은 그 요청을 처리해 JSON 형태의 결과값을 HTTP Response로 반환한다.
서버에서 각각의 서블릿과 클라이언트의 엔진은 서로 대응된다. 서버에서 각각의 메서드와 클라이언트의 엔진 속 메서드는 서로 대응된다.
Main URL : http://115.68.104.30:7777
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 클래스에 모두 정의되어 있다.
{
"status": "SUCCESS" ,
"yet_another_response" : ": >"
}
기사가 서버에 로그인할 때 사용됩니다.
http://115.68.104.30:7777/account/login
Name | Type | Description |
---|---|---|
id | String | 아이디(이메일) 값 |
pw | String | 패스워드 (MD5) |
{
"token" : "" // 토큰값. 사용자의 개인적 정보에 접근할 때는 앞으로 토큰을 이용한다.
}
Status | Description |
---|---|
SUCCESS | 성공 |
FAILED_DB_CONNECTION | 데이터스토어에 연결 실패 |
기사를 등록할때 사용됩니다.
http://115.68.104.30:7777/account/create
Name | Type | Description |
---|---|---|
id | String | 아이디(이메일) 값 |
pw | String | 패스워드 (MD5) |
profile_meta | String | 프로필 메타데이터 |
name | String | 실명 (UTF-8) |
{
"token" : "" // 토큰값. 사용자의 개인적 정보에 접근할 때는 앞으로 토큰을 이용한다.
}
Status | Description |
---|---|
SUCCESS | 성공 |
FAILED_DB_CONNECTION | 기사 등록 실패 |
기사의 아이디(이메일)이 겹치는지 체크합니다. 회원가입단에서 사용.
http://115.68.104.30:7777/account/idexists
Name | Type | Description |
---|---|---|
id | String | 아이디(이메일) 값 |
Status | Description |
---|---|
SUCCESS | 아이디 중복 안됨 |
FAILED_ALREADY_EXISTS | 해당 아이디가 이미 있음 |
기사 계정을 삭제합니다.
http://115.68.104.30:7777/account/delete
Name | Type | Description |
---|---|---|
token | String | 기사의 토큰 값 |
Status | Description |
---|---|
SUCCESS | 삭제 성공 |
FAILED_DB_CONNECTION | 데이터스토어에 연결 실패 |
유저가 새로운 콜을 하나 만들때 사용됩니다.
http://115.68.104.30:7777/room/new
Name | Type | Description |
---|---|---|
udid | String | 유저의 UDID 값 |
fee | Integer | 금액 |
locationFrom_Lat | Float | 유저가 있는 지점의 위도 |
locationFrom_Lon | Float | 유저가 있는 지점의 경도 |
locationTo | String | 도착 지점 (UTF-8) |
phone | String | 자신의 휴대전화 번호 |
car | String | 자신의 자동차 (JSONArray) |
{
"id" : "<CALL_ID>" // 자신이 만든 방(콜)의 아이디를 반환받는다.
}
Status | Description |
---|---|
SUCCESS | 성공 |
FAILED_DB_CONNECTION | 방 생성 실패 |
기사가 유저가 만든 방을 최종 선택할때 사용됩니다.
http://115.68.104.30:7777/room/select
Name | Type | Description |
---|---|---|
token | String | 기사의 토큰값 |
id | String | 선택하려는 방 ID |
phone | String | 자신의 휴대전화 번호 |
Status | Description |
---|---|
SUCCESS | 성공 |
FAILED_ALREADY_TAKEN | 다른 기사가 이미 방을 잡아버림 |
FAILED_NO_ROOM | 이미 취소되었거나 없는 방 ID |
방을 삭제합니다. 기사랑 유저 모두 가능.
http://115.68.104.30:7777/room/delete
Name | Type | Description |
---|---|---|
udid | String | 유저의 UDID 값 (선택적) |
token | String | 기사의 토큰 값 (선택적) |
Status | Description |
---|---|
SUCCESS | 삭제 완료 |
FAILED_NO_ROOM | 잘못된, 없는 방 ID |
FAILED_DB_CONNECTION | 방 삭제 실패 |
기사와 사용자가 서로 위치를 교환합니다. 자신이 기사일 경우에는 유저의 위치를 반환받고, 자신이 유저면 기사 위치를 반환받습니다.
http://115.68.104.30:7777/room/exchange
Name | Type | Description |
---|---|---|
isFromManager | Boolean | 기사인가? |
udid | String | 유저의 UDID 값 (선택적) |
token | String | 기사의 토큰 값 (선택적) |
id | String | 방 ID |
Location_Lat | Float | 자신 위치의 위도 |
Location_Lon | Float | 자신 위치의 경도 |
{
"Location_Lat" : "12.345678", // 상대방의 위치의 위도이다.
"Location_Lon" : "56.789012" // 상대방의 위치의 경도이다.
}
Status | Description |
---|---|
SUCCESS | 교환 성공 |
FAILED_NO_ROOM | 잘못된, 없는 방 ID |
FAILED_DB_CONNECTION | 데이터스토어에 연결 실패 |
기사와 사용자가 서로 전화할수 있게 전화번호를 줍니다.
http://115.68.104.30:7777/room/call
Name | Type | Description |
---|---|---|
isFromManager | Boolean | 기사인가? |
udid | String | 유저의 UDID 값 (선택적) |
token | String | 기사의 토큰 값 (선택적) |
id | String | 방 ID |
{
"phone" : "01012345678" // 상대방의 번호이다.
}
Status | Description |
---|---|
SUCCESS | 가져오기 성공 |
FAILED_NO_ROOM | 잘못된, 없는 방 ID |
FAILED_DB_CONNECTION | 데이터스토어에 연결 실패 |
기사가 자신의 위치로부터 반경 몇m 이내의 콜 정보를 가져옵니다.
http://115.68.104.30:7777/room/get
Name | Type | Description |
---|---|---|
token | String | 기사의 토큰 값 (선택적) |
meter | Integer | 반경거리 |
locationFrom_Lat | Float | 자신 위치의 위도 |
locationFrom_Lon | Float | 자신 위치의 경도 |
{
"status" : "SUCCESS",
"callCount" : "3",
"calls" :
[
{
"id" : "<방 ID>",
"date" : "<생성일자>",
"fee" : "5000",
"fromLocation_Lat" : "12.345678", // 유저 위치의 위도
"fromLocation_Lon" : "56.789012", // 유저 위치의 경도
"toLocation" : "역삼동 현대아파트", // 유저 목적지
},
... callCount만큼
]
}
Status | Description |
---|---|
SUCCESS | 가져오기 성공 |
FAILED_DB_CONNECTION | 데이터스토어에 연결 실패 |