Compojure 还是 Noir 用于无 UI 的 Web 服务?

Posted

技术标签:

【中文标题】Compojure 还是 Noir 用于无 UI 的 Web 服务?【英文标题】:Compojure or Noir for a UI-less webservice? 【发布时间】:2012-03-07 00:15:17 【问题描述】:

如果有人计划创建一个无 UI 的 Web 服务(接收 JSON 和/或 XML,返回 JSON 和/或 XML),Noir 是否提供了除 Compojure 之外的任何有用的东西吗?

【问题讨论】:

【参考方案1】:

我相信 Noir 让使用 noir.response/json 创建 JSON 响应变得更简单:http://ibdknox.github.com/noir/noir.response-api.html#noir.response/json

另一方面,Noir 中的 JSON 支持只是 clj-json 的一个非常薄的包装器(基本上只添加 json 内容类型标头),因此您可以直接使用 clj-json 而不是 Noir。

【讨论】:

如果您要自己添加 JSON 处理,我建议您使用 Cheshire 库。 我同意答案和上述评论。我最近一直在使用 Noir 来提供类似的 API,并且使用它绝对是一个梦想。它使定义对 API 的访问变得异常容易,并且 cheshire 是一个很棒的 JSON 库。就我而言,我使用 congomongo 连接到一个 MongoDB 实例,该实例以 Mongo 的本机 JSON 格式返回数据。 另请注意 Chris Granger 的回复 here 和 here,描述了如何使用它接收 JSON 数据。【参考方案2】:

您应该选择 Compojure,因为现在不推荐使用 Noir。

您可以在此处找到弃用通知和建议: https://github.com/noir-clojure/noir

【讨论】:

以上是关于Compojure 还是 Noir 用于无 UI 的 Web 服务?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Ring 测试会话状态?

如何将 CORS 添加到 compojure-api 应用程序?

在 Compojure 中默认在 / 处提供 index.html

css 图像en noir et blanc.css

Raspberry Pi NoIR 相机挂起

在 Compojure 中组合路线