我刚刚开始学习Clojure,并且在过去的几年里一直在努力应对API的变化.特别是在1.2中,contrib中有一个http-agent函数,它允许非常简单的HTTP请求:
(http-agent "http..." :method "POST" :body "foo=1")
Run Code Online (Sandbox Code Playgroud)
此功能已被删除,现在您应该使用clojure.java.io或第三方解决方案,如http-kit或clj-http.
我真的很惊讶,因为它java.io
似乎更低级别并且失去了简单性或http代理,并且使得http请求看起来像应该在核心库集中(我意识到这是非常主观的).
删除http-agent的理由是什么?它不符合Clojure的核心理念吗?什么是最佳库用于基本HTTP请求的建议?
Mic*_*zyk 10
我无法对旧的contrib的任何特定部分未能成为新的contrib的原因做出权威的陈述,但总的来说,当有足够多的人感兴趣时,事情会被移除,包括一些能够并且愿意维护新库的人.也许在这种情况下,根本没有足够的兴趣.
此外,在多个库之上构建Clojure项目非常简单,并且不清楚在核心库或contrib中是否存在http客户端库会使开发人员比他们更简单和/或更容易现在,在更广泛的生态系统中提供了出色的选择.
至于这些优秀选项的特定示例,我将指向clj-http和http.async.client(按字母顺序排列;哪一个适当取决于您是否可以通过异步触发请求获益).