newsence
Show HN:透過逆向工程 REWE API 訂購雜貨的命令列工具(使用 Haskell 開發)

Show HN:透過逆向工程 REWE API 訂購雜貨的命令列工具(使用 Haskell 開發)

Hacker News·6 天前

korb 是一個使用 Haskell 編寫的命令列工具,透過逆向工程的 API 讓你能以程式化方式在 REWE 建立購物籃並訂購雜貨,其建議引擎更結合了 Lean 4 進行形式化驗證。

背景

這篇討論源於開發者 Yannick 發表的一款名為 korb 的命令列工具(CLI),該工具透過逆向工程德國連鎖超市 REWE 的行動 API,讓使用者能以 Haskell 程式碼或 AI 代理人(Agent)自動化管理購物籃並下單。這項專案不僅展示了 Haskell 在現代開發環境中的應用,更結合了 Lean 4 形式化驗證技術來確保推薦引擎的邏輯正確性,引發了 Hacker News 社群對於自動化購物與 API 開放性的熱烈討論。

社群觀點

社群對於這類將日常生活瑣事「程式化」的嘗試展現出高度興趣,許多留言者認為這讓人聯想到經典電影《網路上身》中主角透過電腦點餐的場景。支持者指出,相較於在手機介面上反覆點擊,透過 CLI 或腳本處理每週重複的購物清單效率極高。有開發者分享了類似的實踐經驗,例如針對英國超市 Asda 開發的自動化機器人,同樣能實現從搜尋、加入購物車到選擇配送時段的完整流程。更有討論提到,若能將食譜文件與此類工具結合,實現「一鍵購入一週食材」的自動化餐飲規劃,將會是極具吸引力的應用場景。

然而,專案採用的逆向工程手段也引發了關於 API 安全與開放性的辯論。部分留言者對公開這類 API 存取方式持保留態度,指出 REWE 過去曾因特定原因加強了 API 的限制。有人猜測,超市方之所以鎖定 API,可能是為了防止第三方開發者進行跨區域的價格比價。根據過往的數據分析顯示,德國不同城市的超市定價存在顯著差異,某些城市的物價甚至可能高出兩成,這類自動化工具若被用於大規模比價,可能會觸及零售商的商業敏感神經。

在技術層面上,Haskell 的選擇成為另一個焦點。雖然 Haskell 常被視為學術性較強的語言,但作者分享了在 AI 輔助下,即便遇到複雜的類型系統或建置問題也能順利推進開發的經驗。此外,專案中引入 Lean 4 進行數學證明的做法被視為一種「極致的樂趣」,雖然作者自嘲這是過度設計,但社群對這種借鑒 AWS Cedar 驗證引擎、將形式化驗證應用於日常工具的嚴謹態度表示讚賞。同時,也有來自奧地利的開發者好奇 REWE 旗下的其他子公司(如 Billa)是否共用相同的 API 架構,顯示出這類自動化需求在跨國零售市場中的潛在通用性。

延伸閱讀

  • mitmproxy2swagger:可自動將攔截到的流量轉換為 OpenAPI 規範的工具。
  • asdabot:針對英國 Asda 超市開發的類似自動化購物機器人。
  • rewerse-engineering:另一個針對 REWE API 進行逆向工程研究的 GitHub 專案。
https://github.com/yannick-cw/korb