8

次の方法でリクエストパラメータに簡単にアクセスできます。

(:foo params)

ただし、次のようなリクエストがある場合:

/api?foo=1&foo=2&foo=3

"3"配列を期待している間だけ戻ってき["1","2","3"]ます。

次のコードを見ると、なぜこれが起こっているのかわかりません。

https://github.com/ring-clojure/ring-codec/blob/master/src/ring/util/codec.clj#L128

assoc-conj同じ名前の複数のパラメータを値を含むベクトルに変換することになっているを呼び出しているようです。

私はここで何かが足りないのですか、それともこれはバグですか?

4

2 に答える 2

8

標準のClojure破壊フォームを使用します。

(GET "/api" {{:strs [foo]} :query-params} (str foo))

curl "http://localhost:3000/api?foo=1&foo=2&foo=3" 
==> ["1" "2" "3"]

doc:https ://github.com/weavejester/compojure/wiki/Destructuring-Syntax

于 2013-04-02T02:49:42.203 に答える
0

私自身はこの問題に遭遇したことはありませんが、URLを手動で解析せずに複数の値を取得することが実際に不可能な場合は、https://github.com/weavejesterでバグレポートを提出する価値があるようです。 /compojure/。(それが機能でない限り..CompojureとCloutには、少し非標準ですが非常に便利なものが他にもいくつかあります。)

于 2013-04-02T02:22:34.530 に答える