【发布时间】:2019-06-02 09:06:50
【问题描述】:
我正在使用朋克啤酒 API https://punkapi.com/documentation/v2 构建一个可以按 ABV 搜索和过滤啤酒的应用。我想将 API 中的所有啤酒分为 3 类:弱 (0-5%)、中等 (5%-12%) 和强 (>12%)。
起初,我正在考虑使用文档提供的参数 abv_lt 和 abv_gt 对每个范围进行 API 调用。但是我认为每次用户点击条件时调用 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;
}))
}
如果有更好或有效的方法解决这个问题,我将不胜感激。谢谢。
【问题讨论】:
标签: javascript reactjs api filtering