Я пытаюсь использовать промежуточное ПО ring-json wrap-json-response в моем приложении compojure. У меня есть простой обработчик 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, то, может быть, все?