Script em php para consultar API
falinhares opened this issue · 5 comments
Olá,
Criei este script em php para consultar os dados dos estados consolidados mas ele está retornando um string vazio quando deveria retornar num json preenchido:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://brasil.io/api/dataset/covid19/caso/data?is_last=True&place_type=state');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
var_dump($result);
Opa, tudo bem? tentou debugar pra ver o motivo de retornar uma string vazia? Eu fiz um aqui em javascript e funcionou tranquilamente.
@falinhares mostra pra gente detalhes do retorno da requisição HTTP
Aqui tá 100%
$ curl -sSL https://brasil.io/api/dataset/covid19/caso/data\?is_last\=True\&place_type\=state | jq . [14:29:06]
{
"count": 27,
"next": null,
"previous": null,
"results": [
{
"city": null,
"city_ibge_code": "12",
"confirmed": 7983,
"confirmed_per_100k_inhabitants": 905.16875,
"date": "2020-06-07",
"death_rate": 0.0259,
"deaths": 207,
"estimated_population_2019": 881935,
"is_last": true,
"order_for_place": 83,
"place_type": "state",
"state": "AC"
},
...
Pois é. Tá estranho, pq o CURL tá direitinho. Fiz um var_dump do resultado e sai assim:
/Users/falinhares/Sites/forxon_lander_v2/covid.php:45:string '' (length=0)
Consegui. Fiz mais umas pesquisas e precisava colocar mais um parâmetro no setup do curl e fazer um setup do header. Consegui pegar o resultados. Código abaixo:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://brasil.io/api/dataset/covid19/caso/data?is_last=True&place_type=state');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$headers = array();
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
var_dump($result);
@falinhares recomendamos usar a API pública com parcimônia para não onerar nossos servidores. Estamos tendo um volume muito grande de chamadas a API para interagir com datasets completos. Caso você precise manipular volumes muito grandes de dados, baixe os CSVs completos. Peço que acompanhe as novidades em nosso canal no Telegram.