新上线5天前203 投票
Show HN:通过逆向工程 REWE API 的 CLI 工具(Haskell 实现)实现自动订购杂货
近日,一位开发者发布了一个名为 korb 的 CLI 工具,它通过逆向工程德国超市连锁 REWE 的 API,允许用户以编程方式创建购物篮并订购杂货,支持自提服务。该项目采用 Haskell 语言编写,旨在作为代理工具,帮助用户自动化管理 REWE 购物流程。
项目背景与动机
开发者分享了学习 REWE API 的体验,包括其使用 mTLS(双向 TLS) 认证和工作流程。过程中,mitmproxy2swagger 工具被用于自动生成 OpenAPI 规范,简化了逆向工程过程。开发者表示,2026 年似乎是编写 Haskell 代码的“完美时机”,强调了 Haskell 在构建可靠、类型安全的 CLI 工具中的优势。
korb 的核心功能
korb 主要提供以下功能,所有输出均为 JSON 格式:
- 身份验证:用户需通过
korb login命令使用 REWE 账户登录(一次性操作)。 - 商店设置:通过
korb store search和korb store set命令查找并设置自提商店。 - 产品搜索:使用
korb search命令按名称或 EAN 条形码搜索产品。 - 购物篮管理:支持添加、修改和查看购物篮内容。
- 订单处理:通过
korb checkout order命令确认订单并选择取货时间段。
实际应用流程
开发者描述了一个端到端的工作流,结合 Claude 等 AI 代理使用 korb:
- 添加杂货项:通过 Siri 快捷方式将物品添加到共享的 Markdown 文件购物清单中。
- 每周订购:告诉 AI 代理“使用 korb 购买杂货”,代理基于默认模板(从历史订单中生成的常用物品和数量)和购物清单文件,调整建议。
- 模板调整:用户指示代理跳过、更改或添加物品,代理通过 korb 搜索产品并添加到购物篮。
- 审核与确认:代理打印完整购物篮和选定时间段,用户确认后执行订单。
- 清理购物清单:已订购物品在购物清单中被标记为完成。
此流程的“魔法”在于自动生成的模板,能识别常用订购物品,提高效率。
安装与使用
korb 提供二进制版本和源码安装选项:
- 二进制安装(推荐):从 GitHub Releases 下载最新版本,适用于 macOS(Apple Silicon)等平台。
- 源码安装:需要 GHC 9.12+ 和 Cabal,并需从 REWE 应用中提取 mTLS 客户端证书。
使用前,用户需获取 REWE mTLS 证书,并放置在指定目录中。项目文档提供了详细指南。
行业意义与展望
korb 展示了逆向工程在自动化日常任务中的潜力,特别是在零售和电商领域。随着 AI 代理的普及,这类工具可能推动更多个性化购物解决方案的发展。然而,项目也引发了对 API 安全性和合法性的讨论——REWE 可能更新其 API 或加强防护,影响工具可用性。
总体而言,korb 是一个有趣的实验,结合了 Haskell 编程、API 逆向工程和 AI 集成,为技术爱好者提供了实用参考。