FitTech
@FitTech

Как ускорить получение данных с API?

1. Пользователь ввел id.
2. Делаю к API другого сервиса запрос с этип id.
3. Получаю к примеру общее количество записей 19000.

Теперь мне нужно пройтись по каждой записи с этих 19000, получить значение этой записи и после определить максимальное значение из этих 19000.
API за один запрос дает максимально 200 записей.

Я сделал так:
1. Цикл for от 1 до 19000/200
2. За каждый проход цикла, записываю в массив максимальное значение из 200.
3. Когда for дошел до конца, выбираю максимальное значение из записанного массива.

Работает, но работает долго.

Каким образом это улучшить или нужно по другому это делать?
  • Вопрос задан
  • 543 просмотра
Решения вопроса 3
@Fortop
Tech/Team lead
Если вы можете выполнять запросы к апи параллельно, то делайте это.
Ответ написан
qonand
@qonand
Software Engineer
Есть два варианта:
1. Слать запросы асинхронно. Если Вы работаете с API по протоколу http можно использовать один из готовых http-клиентов позволяющих это делать.
2. Загружать данные из АПИ в себе к базу и работать с ними.

Какой вариант возможен в Вашей ситуации - нужно смотреть по АПИ и по Вашей системе в целом
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
Апи, который каждый раз лезет на другой апи - это неправильно.
Храните данные в своей базе с датой последнего обновления, если данные устарели - только в этом случае обновляйте их с чужого апи. Может быть даже не по запросу, а по расписанию.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы