9

我一直在阅读 edn 规范并希望将其集成到我的应用程序中。但是,我不知道如何在 clojure 和客户端之间传输 edn 请求。我们是否将内容类型的 application/edn 放在响应标头中并仅发送 prn 输出字符串?

4

1 回答 1

4

虽然它尚未被IANA接受(2013 年 6 月 14 日),但正确的内容类型是application/edn. 要提供 clojure 对象的有效字符串输出,请使用(pr-str obj). 对于 Web 服务,编码和解码的方法取决于您的 Web 框架和您的需求。

Pedestal:edn-params支持通过使用其body-params拦截器将 edn 解析为其请求映射上的键。如果您的响应正文不是字符串,则会自动处理将 clojure 对象作为 edn 发送。对于内容协商,请参阅基座内容协商

对于 ring 中间件,ring-edn 将 edn解析为:edn-paramskey,但不做任何出站修改。 ring-middleware-format提供了将几种不同格式解析为:body-params密钥的功能,并具有一组对响应也有帮助的中间件。还有一些其他像这样的环形中间件项目。

于 2013-06-14T12:51:23.140 回答