使用ring format-params中间件访问已发布的json

时间:2012-10-31 02:10:11

标签: clojure ring

我正在尝试使用clojure中的ring创建一个非常简单的API。我正在使用rack.middleware.format-params中间件将输出转换为json,将输入从json转换为clojure数据结构。

我的输出工作得很好,但我不能为我的生活访问通过json发送的参数。这里有一些适用于get请求的代码,但是我无法获得POST请求以返回它收到的json

(ns testing.core
  (:use [compojure.core]
        [ring.middleware.format-params :only [wrap-json-params]]
        [ring.middleware.format-response :only [wrap-json-response]]
        [ring.adapter.jetty])
  (:require [compojure.handler :as handler]))

(defroutes app-routes
  (GET "/"
       []
       {:body {:hello "world"}})

  (POST "/"
        {params :params}
        {:body params}))

(def app
  (-> (handler/api app-routes)
      (wrap-json-params)
      (wrap-json-response)))

它只返回:{}

我做错了什么?

1 个答案:

答案 0 :(得分:6)

我是个白痴,意识到我没有发送json Content-Type标头。希望没有其他人犯同样的愚蠢错误:P