【问题标题】:Post Does Not Return 200 OK in Liberator Clojure在 Liberator Clojure 中发布不返回 200 OK
【发布时间】:2016-05-22 15:38:28
【问题描述】:

我希望我的 POST 资源返回 200 OK,以便我可以使用 :handle-ok 但资源返回 201 Created。

我使用我的资源进行登录操作。 :handle-ok 不起作用!

这是示例代码:

(POST "/login" []
             (resource :allowed-methods [:post]
                       :available-media-types resource-util/avaliable-media-types
                       :known-content-type? #(resource-util/check-content-type % resource-util/avaliable-media-types)
                       :malformed? #(resource-util/parse-json % ::data)
                       :post! (fn [ctx]
                                {:my-data "oki"})
                       :handle-ok (fn [ctx]
                                    {:ok? true})))

【问题讨论】:

    标签: clojure lisp clojurescript ring liberator


    【解决方案1】:

    您需要将:new? false :respond-with-entity? true 添加到您的资源定义中。在decision graph 中查看更多详细信息。您还应该返回一个将作为响应正文的值(因为您希望返回 HTTP 200,如果您没有要返回的值,则 HTTP 204 更合适)。

    【讨论】:

    • 谢谢。实体的响应是什么?
    • 看看liberator decisions:respond-with-entity 表示应在响应中返回修改/删除的资源实体(例如,POST /user 将在响应正文中返回创建的用户实体)。
    猜你喜欢
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2022-10-04
    • 2018-08-28
    • 1970-01-01
    相关资源
    最近更新 更多