SheepNav
新上线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 searchkorb store set 命令查找并设置自提商店。
  • 产品搜索:使用 korb search 命令按名称或 EAN 条形码搜索产品。
  • 购物篮管理:支持添加、修改和查看购物篮内容。
  • 订单处理:通过 korb checkout order 命令确认订单并选择取货时间段。

实际应用流程

开发者描述了一个端到端的工作流,结合 Claude 等 AI 代理使用 korb:

  1. 添加杂货项:通过 Siri 快捷方式将物品添加到共享的 Markdown 文件购物清单中。
  2. 每周订购:告诉 AI 代理“使用 korb 购买杂货”,代理基于默认模板(从历史订单中生成的常用物品和数量)和购物清单文件,调整建议。
  3. 模板调整:用户指示代理跳过、更改或添加物品,代理通过 korb 搜索产品并添加到购物篮。
  4. 审核与确认:代理打印完整购物篮和选定时间段,用户确认后执行订单。
  5. 清理购物清单:已订购物品在购物清单中被标记为完成。

此流程的“魔法”在于自动生成的模板,能识别常用订购物品,提高效率。

安装与使用

korb 提供二进制版本和源码安装选项:

  • 二进制安装(推荐):从 GitHub Releases 下载最新版本,适用于 macOS(Apple Silicon)等平台。
  • 源码安装:需要 GHC 9.12+ 和 Cabal,并需从 REWE 应用中提取 mTLS 客户端证书。

使用前,用户需获取 REWE mTLS 证书,并放置在指定目录中。项目文档提供了详细指南。

行业意义与展望

korb 展示了逆向工程在自动化日常任务中的潜力,特别是在零售和电商领域。随着 AI 代理的普及,这类工具可能推动更多个性化购物解决方案的发展。然而,项目也引发了对 API 安全性和合法性的讨论——REWE 可能更新其 API 或加强防护,影响工具可用性。

总体而言,korb 是一个有趣的实验,结合了 Haskell 编程、API 逆向工程和 AI 集成,为技术爱好者提供了实用参考。

延伸阅读

  1. 出差两个月,我让智能花盆自己照顾植物——结果令人惊喜
  2. 如何清理Android手机缓存——以及为何它能显著提升性能
  3. 电工警告:这7种常见家用电器切勿插在延长线上
查看原文