marcusesa / loteria-api

Api da loteria (Caixa Econômica Federal).
47 stars 22 forks source link

Sincronização automática dos resultados #2

Closed iagomelanias closed 10 years ago

iagomelanias commented 10 years ago

Testei a api por alguns dias e funciona muito bem. Eu estou pegando o xml e retornando pro usuário usando XML Reader, a requisição é bem rápida, já que apenas os valores úteis são carregados no XML pro usuário.

Porém, quando os resultados só são atualizados se eu novamente rodar o build do projeto, fazendo com que ele passe pelo mesmo processo de instalação.

Isso é algum problema de dependência que eu não tenho, ou por que o repositório realmente não sincroniza os resultados automaticamente?

O diretório web não carrega aqui, mostrando o erro "Whoops, looks like something went wrong". (usando PHP +5.5)

marcusesa commented 10 years ago

@iagomelanias ao acessar por exemplo a rota /?loteria=megasena esta retornando "Whoops, looks like something went wrong" status 400? Em relação a atualização dos dados, elas só são feitas manualmente pelo bin/consumer ou automaticamente por algum CRON.

iagomelanias commented 10 years ago

Opa Marcus, ao acessar com a variação roda normalmente a última loteria.

Eu tentei rodar manualmente o consumer pelo navegador, mas a página é lida como um arquivo de texto no navegador, até porque não tem extensão alguma.

No caso, eu agendo um cron job para rodar o consumer todos os dias? Isso iria refazer todo o processo de download, extract, etc?

Tentei fazer esse processo antes de conhecer sua API, mas o curl não estava sendo executado corretamente por causa da proteção por cookies da Caixa e também a requisição era relativamente bem lenta, porque acessava os dados usando o próprio html via DOM. Achei bem bacana a performance dessa API.

Obrigado.

marcusesa commented 10 years ago

Blz @iagomelanias, você pode procurar por um concurso específico também ?loteria=megasena&concurso=10. Sobre o consumer, você pode rodar automaticamente no CRON ou manualmente no terminal php bin/consumer. Sim por enquanto ele vai fazer todo o processo novamente. No navegador não queremos que rode mesmo, porque imagina se todos os clientes rodarem este arquivo ele estando público, teríamos uma sobrecarga desnecessária. Sobre como o projeto baixa os arquivos da caixa, é através de uma lib do vendor que faz isso de uma maneira que depois precisamos estudar se é a melhor maneira.

iagomelanias commented 10 years ago

Opa Marcus. Perfeito. Testei aqui rodando o bin/consumer via cron e funciona muito bem.

Muito obrigado pelo suporte e pela API. :)

rodbit commented 10 years ago

Existe algum lugar na web que a API está instalada e funcionando?

Obrigado!

rodbit commented 10 years ago

Marcus, como faço para entregar um xml ao invés de json usando o ?loteria=megasena ?

Obrigado!

marcusesa commented 10 years ago

@rodbit por enquanto não temos essa funcionalidade. Mas ficaríamos felizes com uma contribuição.