Maru是否只支持路径参数而不支持参数?

时间:2016-11-19 07:10:03

标签: rest elixir maru

我让{@ 1}}陷入困境,决定使用Maru作为RESTful框架。我浏览了docs并用Google搜索了一天,但找不到任何关于如何解析查询参数的文档或示例。

我想要这样的东西

elixir

我想解析上面的网址并使用查询参数http://localhost:8080/app/rest/system/users?variable1=value1&variable2=value2 variable1填充地图。 Maru是否支持这种操作?

2 个答案:

答案 0 :(得分:4)

我在Maru的源代码中找不到任何功能,但由于Maru在内部使用plug包并允许完全访问自定义插件管道,您可以插入Plug.Conn.fetch_query_params和然后使用conn.params

访问参数
defmodule MyApp do
  use Maru.Router
  plug :fetch_query_params

  get do
    json(conn, conn.params)
  end
end
$ curl 'http://127.0.0.1:8800/?foo=bar&baz\[\]=quux'
{"foo":"bar","baz":["quux"]}

答案 1 :(得分:0)

大多数情况下,此代码有很多帮助,您可以获得所有path urlbody参数。

插头做得很好,所以我们不应该再做了。

defmodule MyApp do
  use Maru.Router
  plug Plug.Parsers,
    pass: ["*/*"],
    json_decoder: Poison,
    parsers: [:urlencoded, :json, :multipart]

  get do
    json(conn, conn.params)
  end
end