Я усвоил очень ценный урок при работе с циклом while и Google Places API. Стоит этот урок минимум $646. Верно, я пропинговал Places API 17 000 раз за час 😳 🤦🏻♂️ Поэтому я решил написать сегодня статью, документирующую мою ошибку, в надежде, что это помешает кому-то другому столкнуться с той же проблемой.
Что случилось?
Ну... Сейчас я создаю веб-приложение и мобильное приложение, использующее API Google Places. Мне нужно было вернуть результаты с помощью поиска поблизости. Google API возвращает только 20 результатов, максимум 60, которые вы можете получить, используя их версию разбиения на страницы. Итак, давайте пройдёмся по коду и объясним, что пошло не так. API Google возвращает только 20 результатов с максимумом 60, которые можно получить, используя пагинация. Давайте рассмотрим код и объясним, что пошло не так.
Вы смогли найти мою ошибку? Цикл while будет выполняться до тех пор, пока не получит значение false. К сожалению, $response['next_page_token'] всегда возвращает true, следовательно, мы улетаем в бесконечный цикл. Дело в том, что я использовал $response['next_page_token'] из первого запроса, который всегда true.
Как я решил эту проблему?
Вывод
Будьте осторожны при работе с API, которые взимают плату. Особенно, если если запускаете их внутри цикла. В качестве меры предосторожности вы всегда можете создать переменную $count и остановить цикл при заданном количестве. Это то, что я буду применять.
Надеюсь, это поможет вам или кому-то ещё не совершить ту же ошибку✌🏻
Перевод. Автор оригинала: Jonathon Ringeisen
Наш telegram: @notnullmedia