从对 Pedestal 的 POST 请求获取 POST 正文数据
Getting the POST body data from a POST request to Pedestal
我已将数据发布到基座端点“/my-post。我已按如下方式路由该端点:
[[["/" {:get landing} ^:interceptors [(body-params/body-params) ...]
["/my-post {:post mypost-handler}
....
所以在我看来,这意味着 body-params 拦截器也会为 /my-post 触发。
在我的post-处理程序中我有:
(defn mypost-handler
[request]
****HOW TO ACCESS THEN FORM DATA HERE ****
)
我现在如何访问此处的表单数据?从打印请求中我可以看出我有一个#object[org.eclipse.jetty.sever.HttpInputOverHTTP..] 显然需要进一步处理才能对我有用。
(我必须说,Pedestal 的文档充其量只是粗略的...)
mypost-handler
充当 Ring 处理程序,即。 e.它应该接受一个 Ring 请求映射和 return 一个 Ring 响应映射。因此,您可以期待一个典型的 Ring 请求结构:
(defn mypost-handler
[{:keys [headers params json-params path-params] :as request}]
;; handle request
{:status 200
:body "ok"})
Here's more relevant info 关于在路由表中定义此类处理程序。
像这样的东西应该有用。注意 mypost-handler 路由上的 body-params 拦截器
(defn mypost-handler
[{:keys [headers params json-params path-params] :as request}]
;; json-params is the posted json, so
;; (:name json-params) will be the value (i.e. John) of name property of the posted json {"name": "John"}
;; handle request
{:status 200
:body "ok"})
(defroutes routes
[[["/mypost-handler" {:post mypost-handler}
^:interceptors [(body-params/body-params)]
]
]])
我已将数据发布到基座端点“/my-post。我已按如下方式路由该端点:
[[["/" {:get landing} ^:interceptors [(body-params/body-params) ...]
["/my-post {:post mypost-handler}
....
所以在我看来,这意味着 body-params 拦截器也会为 /my-post 触发。
在我的post-处理程序中我有:
(defn mypost-handler
[request]
****HOW TO ACCESS THEN FORM DATA HERE ****
)
我现在如何访问此处的表单数据?从打印请求中我可以看出我有一个#object[org.eclipse.jetty.sever.HttpInputOverHTTP..] 显然需要进一步处理才能对我有用。
(我必须说,Pedestal 的文档充其量只是粗略的...)
mypost-handler
充当 Ring 处理程序,即。 e.它应该接受一个 Ring 请求映射和 return 一个 Ring 响应映射。因此,您可以期待一个典型的 Ring 请求结构:
(defn mypost-handler
[{:keys [headers params json-params path-params] :as request}]
;; handle request
{:status 200
:body "ok"})
Here's more relevant info 关于在路由表中定义此类处理程序。
像这样的东西应该有用。注意 mypost-handler 路由上的 body-params 拦截器
(defn mypost-handler
[{:keys [headers params json-params path-params] :as request}]
;; json-params is the posted json, so
;; (:name json-params) will be the value (i.e. John) of name property of the posted json {"name": "John"}
;; handle request
{:status 200
:body "ok"})
(defroutes routes
[[["/mypost-handler" {:post mypost-handler}
^:interceptors [(body-params/body-params)]
]
]])