繁体   English   中英

使用Elixir / Phoenix调用API端点

[英]Call API Endpoint with Elixir/Phoenix

我试用了sportradar API。 我真的不关心运动,但我正在努力学习凤凰和Elixir。 我正在尝试做一些超级基本的东西,但似乎无法实现。 基本上,我正在尝试使用给定的参数建立一个URL并调用API端点。 获取响应并使用返回的内容填充视图。 这就是我被困住的东西。

CONTROLLER

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请求?

使用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)

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

要做到这一点,你需要......

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

这是一个视频,它将带您完成将HTTPoison放入一个空项目 ,从iex交互式shell进行API调用(并解码响应),然后从项目内部进行调用(如果您需要,可以将这个OTP应用程序放入您的Phoenix应用程序中)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM