Clojure 内容类型?

Posted

技术标签:

【中文标题】Clojure 内容类型?【英文标题】:Clojure content-type? 【发布时间】:2011-05-05 15:26:30 【问题描述】:

我正在编写一个使用 JSON 或可选 Clojure 数据 表达式作为正文格式的 Web 服务。如果重要的话,数据只是被读取,而不是评估。对于 Clojure,您建议将什么用作 MIME 或 Content-type?

这是我走了多远: 根据你的看法,Clojure 数据可能是类型“x”、“文本”或多用途“应用程序”:

application/clojure
text/clojure
application/x-clojure

在http://www.iana.org/assignments/media-types/,我什至找不到 Lisp 的类型...(但话说回来,Clojure 不是 Lisp)。

当然有两个版本

application/json
application/javascript

对于 JSON 和 JavaScript,取决于是否评估数据。

【问题讨论】:

【参考方案1】:

标准的建立与设计一样多。如果您发送的文本是 clojure 形式,那么我倾向于认为 application/clojure 很好。我的一项保留是将可执行代码与文字数据结构区分开来,就像 application/javascriptapplication/json 的区别一样。

【讨论】:

好像是这样。我希望我错过了一个已经建立的标准。我已经“在野外”看到过这些版本的痕迹,例如在 pygments 和 moinmoin 中。【参考方案2】:

我会提出一些建议:

application/vnd.clojure-data application/prs.jramb.clojure-data text/vnd.clojure text/prs.jramb.clojure

参见rfc4288 和wikipedia entry 的第 3.2 和 3.3 部分

【讨论】:

是的,如果您从标准组织 (IANA) 的角度来看,这可能是正确的。但是,通过使用私有命名空间(vnd 或 prs),我排除了遵循任何外部标准的可能性。如我所见,如果我打算建立个人标准(我不打算这样做),个人和供应商命名空间将很有用。而且由于我不是 Clojure 的供应商,因此使用它也是错误的。 RFC 还为我认为不适用于 clojure 的商业产品保留 vnd。 我可以理解您的观点,但我认为如果“应用程序/clojure”将由 IANA 注册,您可能会担心。所以我会使用prs以防万一。因此,您将避免名称上的冲突以及可能出现的意外后果。但是我现在没有看到名称 clojure 的具体问题 :) 。现在使用另一种语言,如“围棋”,我肯定会遇到应用程序/围棋问题,因为我们可以想象这种媒体类型将被日本或中国围棋玩家协会正式使用,这可能会非常令人不快。跨度>

以上是关于Clojure 内容类型?的主要内容,如果未能解决你的问题,请参考以下文章

Clojure 类型提示,无法解析类名 clojure.core$double

Clojure : 类型提示塔

卡在 clojure 中的泛型类类型提示

Clojure 中函数的类型提示

Scheme和Clojure没有原子类型谓词 - 这是设计的吗?

为啥 Clojure 编译器不会为不正确的类型提示抛出错误?