【问题标题】:Is there some sort of canonical edn response we can use for ring?我们可以将某种规范的 edn 响应用于 ring 吗?
【发布时间】:2013-06-09 03:09:47
【问题描述】:

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

【问题讨论】:

标签: clojure ring edn


【解决方案1】:

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

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

对于环中间件,ring-edn 将 edn 解析为 :edn-params 键,但不进行任何出站修改。 ring-middleware-format 提供了将几种不同格式解析为 :body-params 键的功能,并拥有一系列有助于响应的中间件。还有一些其他像这样的环形中间件项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 2016-06-22
    • 1970-01-01
    • 2022-12-07
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    相关资源
    最近更新 更多