在 API 请求中使用“in”运算符

问题描述 投票:0回答:1

BestBuy API 端点之一是:

https://api.bestbuy.com/v1/products

他们的指南这里(请参阅最后一行)说,为了避免速率限制,可以在一次调用中获取多个 sku(产品)的数据,如下所示:

https://api.bestbuy.com/v1/products(sku in(43900,2088495,7150065))?apiKey=YourAPIKey

这有效。但是,对于像这样的其他一些 API 端点,我如何以类似的方式使用 in 运算符:

https://api.bestbuy.com/v1/products/{sku here}/viewedUltimatelyBought?apiKey=YourAPIKey

上述内容适用于单个 sku,例如 1542658,如下所示:

https://api.bestbuy.com/v1/products/1542658/viewedUltimatelyBought?apiKey=YourAPIKey

但是为了在一次调用中获取多个 sku 的数据,我尝试了像这样的查询变体,并且所有返回错误都表明查询无效:

https://api.bestbuy.com/v1/products/(sku in(6559245, 6559246, 6559247))/viewedUltimatelyBought?apiKey=YourAPIKey

https://api.bestbuy.com/v1/products/[6559245, 6559246, 6559247]/viewedUltimatelyBought?apiKey=YourAPIKey

https://api.bestbuy.com/v1/products/(6559245, 6559246, 6559247)/viewedUltimatelyBought?apiKey=YourAPIKey

有人可以为我正确构建查询吗?我知道在无法访问 API 的情况下可能会有点困难(显然我不能在这里分享我的 API 密钥),但我认为可能存在我不知道的此类请求的通用格式。如果重要的话,我使用以下代码来获取对查询的响应:

            json_content = json.loads(requests.get(query).content)
rest python-requests best-buy-api
1个回答
0
投票

他们在你链接的大摇大摆中有一个例子

开盒单个SKU

https://api.bestbuy.com/beta/products/8610161/openBox?apiKey=YourAPIKey

按 SKU 列表开箱

https://api.bestbuy.com/beta/products/openBox(sku%20in(5729048,7528703,4839357,8153056,8610161))?apiKey=YourAPIKey

所以你的网址可能应该是

https://api.bestbuy.com/v1/products/viewedUltimatelyBought(sku in(6559245, 6559246, 6559247))?apiKey=YourAPIKey

注意

beta
v1
之间的路径差异,我不确定它在这里是否重要。

© www.soinside.com 2019 - 2024. All rights reserved.