%PDF- %PDF-
| Direktori : /home/vacivi36/core/app/Http/Controllers/ |
| Current File : /home/vacivi36/core/app/Http/Controllers/CityController.php |
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
class CityController extends Controller
{
/**
* Exibir a lista de cidades.
*/
public function index()
{
// Defina o tempo de cache em minutos (por exemplo, 60 minutos)
$cacheTime = 60;
// Tente obter os dados do cache
$cityNames = Cache::get('city_names');
if (!$cityNames) {
// Se não estiver em cache, faça a chamada para a API
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://parseapi.back4app.com/classes/City?limit=100000&keys=name',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-Parse-Application-Id: QiGq93pW2KO3xAHlLNFoJjg1kM3qYMhiLEtTPwYq',
'X-Parse-Master-Key: gv6cOhHXeNwNWzDsObRXEe67BwpVhddUIVwVPR5C'
],
]);
$response = curl_exec($curl);
if (curl_errno($curl)) {
return response()->json(['error' => 'Erro ao fazer requisição para a API.'], 500);
}
curl_close($curl);
$data = json_decode($response, true);
// Verifique se existe a chave "results" e extraia os nomes
$cityNames = [];
if (isset($data['results'])) {
foreach ($data['results'] as $city) {
if (isset($city['name'])) {
$cityNames[] = ['name' => $city['name']];
}
}
}
// Armazene no cache para evitar futuras chamadas à API
Cache::put('city_names', $cityNames, $cacheTime);
}
return response()->json($cityNames, 200, [], JSON_PRETTY_PRINT);
}
// public function index()
// {
// $curl = curl_init();
// curl_setopt_array($curl, [
// CURLOPT_URL => 'https://parseapi.back4app.com/classes/City?limit=10&keys=name',
// CURLOPT_RETURNTRANSFER => true,
// CURLOPT_HTTPHEADER => [
// 'X-Parse-Application-Id: QiGq93pW2KO3xAHlLNFoJjg1kM3qYMhiLEtTPwYq',
// 'X-Parse-Master-Key: gv6cOhHXeNwNWzDsObRXEe67BwpVhddUIVwVPR5C'
// ],
// ]);
// $response = curl_exec($curl);
// if (curl_errno($curl)) {
// return response()->json(['error' => 'Erro ao fazer requisição para a API.'], 500);
// }
// curl_close($curl);
// $data = json_decode($response, true);
// // Extrai apenas os valores do campo 'name'
// $names = array_column($data['results'], 'name');
// return response()->json($names, 200, [], JSON_PRETTY_PRINT);
// }
}