使用Elixir和Phoenix发出HTTP请求

时间:2017-10-08 16:52:10

标签: json http elixir phoenix-framework

我是一个试图进入长生不老药的Ruby开发者。我正在尝试与API交互以学习一点Elixir。我基本上是在尝试发出http请求。在红宝石中,我想做的事情看起来就像这样。

require 'httparty'


url = "https://api.sportradar.us/nba/trial/v4/en/games/2016/11/05/schedule.json?api_key={api_key}"
response = HTTParty.get(url)
req = response.parsed_response

非常简单明了。现在我有一个json解码响应,我可以在屏幕上显示数据。我怎么能用Elixir和Phoenix做到这一点?

2 个答案:

答案 0 :(得分:12)

使用httpoison(HTTP客户端)和poison(JSON编码器/解码器)软件包,这几乎与使用HTTParty的代码一样简单:

url = "https://api.sportradar.us/nba/trial/v4/en/games/2016/11/05/schedule.json?api_key=#{api_key}"

response = HTTPoison.get!(url)
req = Poison.decode!(response.body)

答案 1 :(得分:12)

您不仅可以像以前一样简单地编写代码,如@Dogbert's example所示,但您也可以通过模式匹配来做很酷的事情(并且可以根据需要进行细化)

使用HTTPoison和Poison:

url = "https://api.sportradar.us/nba/trial/v4/en/games/2016/11/05/schedule.json?api_key={api_key}"

case HTTPoison.get(url) do
  {:ok, %{status_code: 200, body: body}} ->
    Poison.decode!(body)

  {:ok, %{status_code: 404}} ->
    # do something with a 404

  {:error, %{reason: reason}} ->
    # do something with an error
end