%PDF- %PDF-
Direktori : /home2/vacivi36/core/app/Http/Controllers/ |
Current File : //home2/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); // } }