web-dev-qa-db-ja.com

ElixirとPhoenixでHTTPリクエストを行う

私はRuby devはエリクサーに乗り込もうとしています。小さなエリクサーを学ぶためにAPIを操作しようとしています。基本的にはhttpリクエストを作成しようとしています。 Ruby私がやろうとしていることは次のようになります。

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でデコードされた応答が得られ、画面にデータを表示できます。エリクサーとフェニックスでこれを行うにはどうすればよいですか?

9
Bitwise

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)
14
Dogbert

@ Dogbertの例 に示すように、以前と同じように簡単にコードを記述できるだけでなく、パターンマッチングを使用してクールなこともできます(また、好きなだけ細かくすることもできます)。

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
13
ryanwinchester