Breaking changes in compojure 0.6.0

Wed 02 February 2011
  • 手艺 tags:
  • clojure
  • compojure
  • web published: true comments: true

在compojure 0.6.0里,默认的middleware被移除了。因为还没有正式发布,所以网上几乎没有相关的文档说明,而0.5.x的例子已经没能正常工作了。

[cc lang="clojure"]
;...
(defroutes root
(GET "/" {params :params} (str params)))

(run-jetty root {:port 8080}))
[/cc]

这样在0.5.x中可以正确运行的代码,在0.6.0中params变成了空的map。

在0.6.0中,compojure引入了一个新的ns叫做compojure.handler,其中包含两个function, api和site,它们包含了一些默认的middleware,适合相应的开发场景。为了让代码能够工作,在新版本中:
[cc lang="clojure"]
;...
(use 'compojure.handler)
(defroutes root
(GET "/" {params :params} (str params)))

(def app (site root))

(run-jetty root {:port 8080}))
[/cc]

详细可以在这里找到 https://groups.google.com/group/compojure/browse_thread/thread/4f8574d808ddf53e