2016-04-11 4 views
1

Я вывешивал данные на пьедестал конечной точку «/ мой-пост я направляю эту конечную точку, как, например:Получение данных тела POST из запроса POST на постамент

[[["/" {:get landing} ^:interceptors [(body-params/body-params) ...] 
    ["/my-post {:post mypost-handler} 
    .... 

Так на мой взгляд, это означает, ., что тело-PARAMS перехватчик будет срабатывать для/mypost слишком

в mypost-обработчика у меня есть:

(defn mypost-handler 
    [request] 
    ****HOW TO ACCESS THEN FORM DATA HERE **** 
)  

Как я теперь получить доступ к данным формы здесь можно видеть из печати запрос? что у меня есть #object [org .eclipse.jetty.sever.HttpInputOverHTTP ..], который явно нуждается в дальнейшей обработке, прежде чем он мне будет полезен.

(я должен сказать, что документация на пьедестал довольно схематичны в лучшем случае ...)

ответ

2

Нечто подобное должно работать. Обратите внимание на перехватчик body-params на маршруте mypost-handler

(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)] 
    ] 
    ]]) 
0

mypost-handler выступает в качестве обработчика кольцо, я. е. он должен принять карту запроса звонка и вернуть карту ответа на звонок. Таким образом, можно ожидать, типичную структуру запроса Ring:

(defn mypost-handler 
    [{:keys [headers params json-params path-params] :as request}] 
    ;; handle request 
    {:status 200 
    :body "ok"}) 

Here's more relevant info на определении таких обработчиков в таблицах маршрутизации.

+0

Спасибо, но я до сих пор не знаю, как я на самом деле получить данные. – Zuriar