【问题标题】:Call API Endpoint with Elixir/Phoenix使用 Elixir/Phoenix 调用 API Endpoint
【发布时间】:2023-03-05 18:24:01
【问题描述】:

我试用了 sportradar API。我真的不关心运动,但我正在尝试学习一些凤凰和长生不老药。我正在尝试做一些超级基本的事情,但似乎无法实现。基本上,我正在尝试使用给定的参数构建一个 URL 并调用一个 API 端点。取回响应并用返回的内容填充视图。这就是我遇到的问题。

控制器

def index(conn, _params) do
  render(conn, "index.html")
end

def find_games(conn, params) do
  response = params["find_games"]["calender"]


end

此时我基本上是想说致电https://api.sportradar.us/nba/trial/v4/en/games/response["day]/response["month"]/response["year"]/schedule.json?api_key={api_key}

如何使用 Elixir 和 Phoenix 发出 http 请求?

【问题讨论】:

标签: elixir phoenix-framework


【解决方案1】:

一个使用HTTPoison.get的例子:

%{
  "day" => day,
  "month" => month,
  "year" => year
} = response

url = "https://api.sportradar.us/nba/trial/v4/en/games/#{day}/#{month}/#{year}/schedule.json"
headers = []
params = [api_key: api_key]

{:ok, response} <- HTTPoison.get(url, headers, params: params)
Poison.decode(response.body)

【讨论】:

    【解决方案2】:

    您可能会更容易让它工作并首先从凤凰城以外的地方理解它。正如 Mike 指出的,HTTPoison 是用于该任务的标准库。

    为此,您需要...

    1. 在混合文件中添加 HTTPoison 作为依赖项
    2. 运行mix deps.get
    3. 从您的项目内部调用它
    4. 解析响应,可能使用像 Poison 这样的 JSON 解码库

    这是一个视频,带您了解 putting HTTPoison into an empty project,从 iex 交互式 shell 进行 API 调用(并解码响应),然后从您的项目内部(这是一个 OTP 应用程序,如果您可以将其扔进您的 Phoenix 应用程序,如果你想要)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      • 2018-05-22
      • 1970-01-01
      相关资源
      最近更新 更多