【发布时间】:2013-11-25 18:22:46
【问题描述】:
我正在用 Clojure 中实现的 PHP API 替换旧的 PHP API。 API 有一个接受数组样式参数的端点,例如:
http://localhost/create?person[name]=John&person[gender]=m
PHP 会产生这样的结果:
array(
"person" => array(
"name" => "John",
"gender" => "m"
)
)
我们目前正在使用 Ring 的 wrap-params 来处理参数。如果您查看 source 进行环的输入解码,您会看到环采用简单的视角来解码输入参数 - 只需将其拆分为 & 和 =。因此,它产生以下结果:
{"person[name]" "John"
"person[gender]" "m"}
明确地说,在 Clojure 中,我需要以下参数:
{"person" {"name" "John"
"gender" "m"}}
如何设置我的环应用程序以正确接受 PHP 支持的数组样式参数?有没有我可以使用的第三方中间件?
【问题讨论】:
-
ring.middleware.nested-params似乎是解决方案。目前正在努力正确实施它,文档有点稀疏。