Я работаю с API панк-пива https://punkapi.com/documentation/v2, чтобы создать приложение, которое может искать и фильтровать пиво по ABV. Я хочу разделить все виды пива в API на 3 категории: слабое (0-5%), среднее (5-12%) и крепкое (> 12%).
Сначала я думал о вызове API для каждого диапазона, используя параметры abv_lt и abv_gt, которые предоставляет документ. Но тогда я думаю, что было бы дорого делать вызов API каждый раз, когда пользователь нажимает на критерии.
Итак, мой следующий подход - просто загрузить все пиво в большой массив, объединив все страницы вместе и выполнив всю фильтрацию и поиск из локального мастер-массива (по умолчанию каждый запрос возвращает только 25 пива):
getAllBeers(){
const requestURL=`${root_api}beers`;
axios.all([
axios.get(`${requestURL}?page=1&per_page=80`),
axios.get(`${requestURL}?page=2&per_page=80`),
axios.get(`${requestURL}?page=3&per_page=80`),
])
.then(axios.spread(function (data1, data2,data3) {
let beerData1 = data1.data;
let beerData2 = data2.data;
let beerData3 = data3.data;
let master_data = beerData1.concat(beerData2, beerData3);
return master_data;
}))
}
Буду признателен, если есть лучший или эффективный подход к этой проблеме. Спасибо.