我一直在阅读 edn 规范并希望将其集成到我的应用程序中。但是,我不知道如何在 clojure 和客户端之间传输 edn 请求。我们是否将内容类型的 application/edn 放在响应标头中并仅发送 prn 输出字符串?
问问题
1872 次
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-params
key,但不做任何出站修改。 ring-middleware-format提供了将几种不同格式解析为:body-params
密钥的功能,并具有一组对响应也有帮助的中间件。还有一些其他像这样的环形中间件项目。
于 2013-06-14T12:51:23.140 回答