我是一个试图进入长生不老药的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做到这一点?
答案 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