Compojure アプリ内で ring-json の wrap-json-response ミドルウェアを使用しようとしています。のようなマップを返す単純な GET ハンドラーがあり{:foo 1}
、URL にヒットすると、リングはtext/plain
空の応答本文で応答します。JSONバージョンのマップで応答できないようです。
ここに私のハンドラコードがあります:
(ns localshop.handler
(:use compojure.core)
(:require [localshop.routes.api.items :as routes-api-items]
[ring.middleware.json :as middleware]
[compojure.handler :as handler]
[compojure.route :as route]))
;; map the route handlers
(defroutes app-routes
(context "/api/item" [] routes-api-items/routes))
;; define the ring application
(def app
(-> (handler/api app-routes)
(middleware/wrap-json-body)
(middleware/wrap-json-params)
(middleware/wrap-json-response)))
ルート ハンドラー関数は文字どおりマップを返すだけなので、そのコードは単純なので省略することもできます。Compojure ルート ハンドラーからマップを返すことが問題である場合、おそらくそれでおしまいでしょうか?