Google Hackpair에 출품작인 Chrome Games Ranking Server 소스입니다.
클라이언트에서는 직접 URL을 사용하거나 static/ranking.js파일을 include 하여 'ranker' object를 사용하면 됩니다. 요청/응답의 모든 데이터 타입은 json타입으로 사용합니다. API테스트는 콘솔페이지에서 할 수 있습니다.
POST http://cg-ranking.appspot.com/user/
{
ranker:{
game_name:[w+],
user_name:[w+],
score:[0-9]
}
}
{
game_name:[w+],
user_name:[w+],
score:[0-9],
rank[0-9] // 현재 점수에 해당하는 랭킹
}
ranking.add(game_name, user_name, score, function(success, data) {
data = JSON.parse(data)
var ret = (success) ? ['rank:', data.rank, data.game_name, data.user_name, data.score].join(' ') : 'ERROR';
console.log(ret);
});
GET http://cg-ranking.appspot.com/top/<game_name>/<limit>
<game_name>: 지정된 게임의 이름
<limit>: 최대 갯수 TOP 100을 원하면 100으로 넘긴다.
응답은 리스트 형대로 전달 됩니다. 순서는 score의 내림차순입니다.
[{
game_name:[w+],
user_name:[w+],
score:[0-9],
}]
ranking.top(game_name, max, function(success, data) {
var data = JSON.parse(data)
, rankers = (!success) ? 'ERROR' : '';
$.each(data, function(i, r) {
rankers += [r.game_name, r.user_name, r.score, '\n'].join(' ')
})
console.log(rankers);
});