내 compojure 앱에서 ring-json의 wrap-json-response 미들웨어를 사용하려고합니다. {:foo 1}
같은지도를 반환하는 간단한 GET 처리기가 있고 URL을 누를 때 반지는 text/plain
및 빈 응답 본문으로 응답합니다. JSON 버전의지도로 응답 할 수없는 것 같습니다.ring-json의 wrap-json-response 미들웨어 및 compojure가 text/plain을 반환합니까?
여기 내 처리기 코드입니다 :
이(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 라우트 핸들러에서 맵을 반환하는 것이 문제라면, 아마도 그게 맞습니까?
감사합니다, 나는 내 머리를 철수했다. 이것은 실제로 더 잘 문서화되어 있어야합니다. –
왜 포장해야합니까? –
이 방법은 응답의 본문 이외의 다른 옵션을 허용 할 수 있으므로 내 의도적으로 '{: body {}}'를 지정해야합니다. – film42