В приведенной ниже функции я сначала получаю все места, которые пользователь занял в списке желаний. Каждое место имеет свойство под названием place_id
, которое необходимо использовать в GET-запросе к API мест Google. Вот почему я перебираю все места, делаю GET-запрос для каждого из них, а затем помещаю результат в массив, который, наконец, отправляется внешнему интерфейсу.
Проблема, с которой я сталкиваюсь, заключается в том, что если я перечислю слишком много мест, выполнение этой функции займет много времени, поскольку ей придется выполнять 5-10-100 запросов GET. Это правильный способ сделать это? Есть ли альтернативы?
public function getWishlist($username){
$user = User::where('username', $username)->first();
$wishlistedPlaces = $user->wishlistedPlaces;
$finalPlaces = [];
foreach ($wishlistedPlaces as $wishlistedPlace) {
$get = file_get_contents("https://maps.googleapis.com/maps/api/place/details/json?placeid=" . $wishlistedPlace->place_id . "&key=");
$result = json_decode($get);
array_push($finalPlaces, $result);
}
return response()->json([
'wishlistedPlaces' => $finalPlaces,
], 201);
}