javascript - 需要一些实用的想法来解决 untappd API 的限制
问题描述
我目前正在使用 javascript 和 untappd API 编写我的第一个“webapp”。API 文档可以在这里找到:https ://untappd.com/api/docs#start
对于那些不知道的人,untappd 是一款让您可以用手机检查和评价啤酒的应用程序。我的计划是根据你自己在 untappd 中评价最高的啤酒,制作一些可以向你推荐啤酒的东西!只是一个爱好项目。
到目前为止,我已经能够根据您填写的用户名进行 API 调用,解析 JSON 数据并在网页上的 HTML 卡片中显示前 10 名啤酒。
下一步是获取前 10 名啤酒的某些特征(例如啤酒类型、啤酒厂、评级),并将它们用作搜索类似啤酒的参数。
然而问题是 untappd 的“搜索啤酒”API 似乎非常有限。例如,它不会返回您找到的啤酒的全球评级。您也无法搜索特定类型的啤酒。例如,如果您查询 IPA - American”,它可能会返回“IPA - Imperial/Double Black”。您可以在此处找到 untappd 搜索啤酒 API:https ://untappd.com/api/docs#beersearch
我也在考虑使用不同的啤酒数据库进行搜索,但似乎没有一个很好的公共数据库可供我使用。
所以基本上我正在寻找想法。也许有一个我没有看到的更好的解决方案。或者一些我想不出来的解决方法。
解决方案
看起来/beer/info/{bid} 端点为每种啤酒返回了更多详细信息,因此您可以执行搜索,然后对每种啤酒进行迭代以获取更多详细信息。可以使用Promises.all()来提供帮助。
至于过滤特定类型,不幸的是,我认为这是他们公共 API 中的一个计算限制,以防止 API 消费者构建可能会引起更多关注的强大集成。所以你也可以使用上面的端点来执行你自己的过滤,只按类型抓取啤酒。
推荐阅读
- z3 - z3 是否可以从抽象函数公式中求解函数?
- java - 在给定本金、利率和时间的情况下,编写一个程序来找出单利和复利之间的区别
- typescript - 构建步骤后将文件保存在 dist 文件夹中(nestjs)
- android - Android上的Qt蓝牙“无法启动经典发现”
- node.js - 在 Fastify 中,如何在用户超过速率限制配额后将其禁止 60 秒。( fastify-rate-limit )
- mysql - orderBy 子类别直到存在于 laravel
- oracle - Oracle 企业管理器 19c 问题
- .net - 在 docker 中从 .net 核心程序运行单独的进程
- javascript - 单击按钮会显示 url,但不会将我带到我想要的页面
- python - tf.python.keras.saving.hdf5_format 抛出 TypeErrr('Not JSON Serializable:' obj)