Post 在 Liberator Clojure 中不 Return 200 OK

Post Does Not Return 200 OK in Liberator Clojure

我想要我的 POST 资源 return 200 好的,这样我就可以使用 :handle-ok但资源 returns 201 已创建。

我使用我的资源进行登录操作。 :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})))

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