Endpoint de status
O IdleBazaar faz um GET nesse endereço ao salvar o cadastro e depois a cada 10 minutos. O resultado atualiza o selo online/offline, os jogadores online e o recorde.
http
GET https://mygame.com/api/statusCampos do JSON
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
online | boolean | sim | Se o jogo está no ar. Com false, os jogadores online contam como 0. |
players_online | integer | sim | Jogadores conectados agora. Inteiro maior ou igual a zero. |
max_players | integer | não | Capacidade máxima. Se informado, players_online não pode passar dele. Padrão: 0. |
record_players | integer | não | Recorde de jogadores online. Padrão: o valor de players_online. |
uptime | integer | não | Tempo no ar, em segundos. Padrão: 0. |
idlebazaar_claim | string | não | Só para reivindicar o jogo: o código gerado na página do jogo. |
Exemplo de resposta
json
{
"online": true,
"players_online": 42,
"max_players": 1000,
"record_players": 120,
"uptime": 3600
}Exemplos de implementação
js
app.get('/api/status', (req, res) => {
res.json({
online: true,
players_online: game.countOnlinePlayers(),
max_players: 1000,
record_players: game.recordPlayers(),
uptime: Math.floor(process.uptime()),
})
})php
<?php
header('Content-Type: application/json');
echo json_encode([
'online' => true,
'players_online' => $game->countOnlinePlayers(),
'max_players' => 1000,
'record_players' => $game->recordPlayers(),
'uptime' => time() - $game->startedAt(),
]);python
@app.get("/api/status")
def status():
return {
"online": True,
"players_online": game.count_online_players(),
"max_players": 1000,
"record_players": game.record_players(),
"uptime": int(time.time() - game.started_at),
}go
http.HandleFunc("/api/status", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(map[string]any{
"online": true,
"players_online": game.CountOnlinePlayers(),
"max_players": 1000,
"record_players": game.RecordPlayers(),
"uptime": int(time.Since(game.StartedAt).Seconds()),
})
})