小编Zac*_*ero的帖子

您如何使用 Reitit 在 Clojure 中设置中间件以启用主体参数的强制转换?

我正在尝试设置执行强制的 Reitit 路由器。我可以让响应部分工作,但我似乎无法让身体强制正常工作。以下是我正在使用的代码:

(ns example
  (:require
   [ring.middleware.json :refer [wrap-json-body wrap-json-response]]
   [ring.middleware.reload :refer [wrap-reload]]
   [ring.util.response :refer [response]]
   [reitit.ring.coercion :as rrc]
   [reitit.coercion.malli]
   [reitit.ring :as ring]))

(def router
  (ring/ring-handler
   (ring/router
    [["/healthz" {:get (fn [_] {:status 200 :body "healthy"})}]
     ["/api" {:coercion reitit.coercion.malli/coercion
              :middleware [rrc/coerce-exceptions-middleware
                           rrc/coerce-request-middleware
                           rrc/coerce-response-middleware]}
      ["/messages" {:post {:summary "Add a new message"
                           :parameters {:body [:map [:name string?]]}
                           :responses {200 {:body [:map
                                                   [:message string?]]}}
                           :handler (fn [req]
                                      {:status 200 :body {:message (:name (:body req))}})}}]]]
    {:data {:middleware []}})
   (ring/create-default-handler)))

(def app (-> #'router
             (wrap-reload)
             (wrap-json-response) …
Run Code Online (Sandbox Code Playgroud)

clojure ring reitit

2
推荐指数
1
解决办法
1251
查看次数

标签 统计

clojure ×1

reitit ×1

ring ×1