Uma API de status permite que sites, launchers e aplicativos verifiquem informações do servidor de Tibia em tempo real. Este guia mostra como criar uma API REST completa e eficiente.
Planejamento da API #
Defina quais informações a API deve retornar: número de jogadores online, capacidade máxima, uptime do servidor, versão da engine, informações de mapas, eventos ativos, e outras métricas relevantes. Decida o formato de resposta (JSON é o padrão) e estrutura os endpoints de forma RESTful. Por exemplo: /api/status para status geral, /api/players para lista de jogadores online, /api/server/info para informações do servidor.
Implementação básica #
Crie um arquivo PHP (ou outra linguagem de sua preferência) que conecta ao banco de dados do servidor de Tibia e consulta as informações necessárias. Para jogadores online, consulte a tabela players filtrando por status online. Para uptime, você pode ler um arquivo de log ou manter um registro no banco de dados. Implemente cache (usando memória, Redis ou arquivo) para reduzir carga no banco, já que status pode ser consultado frequentemente. Configure headers HTTP apropriados (Content-Type: application/json) e permita CORS se a API será usada por sites externos.
Autenticação e segurança #
Proteja a API com autenticação por token ou chave API para evitar abuso. Implemente rate limiting para limitar número de requisições por IP ou token em um período de tempo. Use HTTPS para todas as comunicações. Valide e sanitize todos os parâmetros de entrada para prevenir SQL injection e outros ataques. Considere adicionar logging de requisições para monitoramento e debugging.
Otimização e performance #
Implemente cache agressivo já que informações de status não mudam a cada segundo. Atualize o cache a cada 30-60 segundos, dependendo da necessidade de precisão. Use queries SQL otimizadas com índices apropriados. Considere usar Redis ou Memcached para cache em memória se tiver muitos acessos simultâneos. Implemente compressão de resposta (gzip) para reduzir tamanho das respostas.
Documentação e exemplos #
Crie documentação clara da API listando todos os endpoints, parâmetros aceitos, formatos de resposta e exemplos de uso. Forneça exemplos de código em diferentes linguagens (PHP, JavaScript, Python) mostrando como consumir a API. Considere criar uma página de teste interativa onde desenvolvedores podem testar os endpoints diretamente no navegador.
Funcionalidades avançadas #
Adicione endpoints para informações mais detalhadas: ranking de jogadores, estatísticas de guildas, histórico de eventos, informações de mapas customizados. Implemente filtros e paginação para endpoints que retornam listas grandes. Adicione suporte a Webhooks para notificar sistemas externos quando eventos importantes acontecem (servidor cai, número de jogadores atinge recorde, etc.).
FAQ #
Com que frequência devo atualizar os dados? #
Depende da necessidade. Para jogadores online, atualize a cada 30-60 segundos. Para informações menos dinâmicas (versão da engine, configurações), pode atualizar a cada 5-10 minutos.
Posso usar esta API em sites externos? #
Sim, desde que configure CORS adequadamente e implemente autenticação para controlar acesso. Considere criar diferentes níveis de acesso (público para informações básicas, autenticado para dados detalhados).
Como lidar com servidor offline? #
A API deve retornar status apropriado (HTTP 503 ou código de erro customizado) e informações sobre quando o servidor ficou offline. Mantenha cache dos últimos dados conhecidos para exibir informações mesmo quando o servidor está offline.
Com uma API de status bem desenvolvida, você permite integrações poderosas que melhoram a experiência dos jogadores no servidor de Tibia.