8

org.clojure/clojure-contrib "1.2.0" ring "1.1.8" compojure "1.1.5" clout "1.1.0"

(defroutes rest-routes
    (GET "/" [] "<p> Hello </p>")
    (POST "/api/v1/:stor/sync" [stor] (start-sync stor))
    (POST ["/api/v1/:stor/:txn/data/:file" :file #".*"] [stor txn file] (txn-add stor txn file))
    (ANY "*" [] "<p>Page not found. </p>"))

2 番目の POST では、すべての http-header を "txn-add" ハンドラーに渡したいと考えています。私はたくさんのグーグルをしてコードを調べましたが、役に立つものは何も見つかりませんでした.

私は知っています、私はヘッダーを渡すために以下を使用できます(しかし、それはURLリクエストを解析しません)、

(POST "/api/v1"
  {headers :headers} (txn-add "dummy stor" "dummy txn" headers))

また、POST リクエストのコンテンツ (つまり :body) を "txn-add" に渡すにはどうすればよいですか?

4

2 に答える 2

6

リクエスト マップ全体は、バインディングで:asキーワードを使用してバインディングで指定でき、ヘッダーまたはボディの読み取りに使用できます。

(POST ["/api/v1/:stor/:txn/data/:file" :file #".*"] 
      [stor txn file :as req] 
      (my-handler stor txn file req))
于 2013-05-23T06:27:09.743 に答える