Tesla的嵌套查询参数

时间:2019-01-18 04:04:13

标签: get elixir query-parameters tesla

这是我要访问的URL:

/example/?fields=*&filter[platform][eq]=111&order=date:asc&filter[date][gt]=1500619813000&expand=yes

我的代码:

  get("/release_dates",
      query: [
        fields: "*",
        order: "date:desc",
        expand: "games",
        filter: %{
          date: %{gt: unix_now},
          version_parent: %{not_exists: 1}
        }
      ]
    )

我正在尝试执行具有那些filter[date][gt]=123123123123类型查询参数的Tesla GET请求。

感谢帮助!

1 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,那么您想生成一个带有过滤器的URI,用于过滤“大于”可变的时间戳。

根据您的初始示例,可以这样做:

Tesla.get("/example/",
  fields: "*",
    filter: [
    platform: [
      eq: 111
    ]
  ],
  order: "date:asc",
  filter: [
    date: [
      gt: unix_now
    ]
  ],
  expand: "yes"
)

请注意,/example是相对引用,只能使用基本URI进行解析。最好提供完整的URI。

如果要在iex控制台中尝试URI生成器,可以在项目目录中使用iex -S mix,然后使用以下功能:

Tesla.build_url("/example/",
  fields: "*",
  filter: [
    platform: [
      eq: 111
    ]
  ],
  order: "date:asc",
  filter: [
    date: [
      gt: 123123123123
    ]
  ],
  expand: "yes"
) |> URI.decode()