Elixir:
Een HTTP-verzoek verzenden

Hoe:

Gebruik de HTTPoison bibliotheek van Elixir. Het is netjes, eenvoudig en klaart de klus.

  1. Voeg HTTPoison toe aan je mix.exs van je project:
defp deps do
  [
    {:httpoison, "~> 1.8"}
  ]
end
  1. Voer mix deps.get uit in je terminal om de afhankelijkheid op te halen.

  2. Nu ben je klaar om een GET-verzoek te verzenden:

case HTTPoison.get("https://jsonplaceholder.typicode.com/posts/1") do
  {:ok, %HTTPoison.Response{status_code: 200, body: body}} ->
    IO.inspect(body) # je hebt je data!
  {:error, %HTTPoison.Error{reason: reason}} ->
    IO.inspect(reason) # fout afhandelen
end

Voorbeeldoutput: een JSON-string van postgegevens van de placeholder-API.

Diepgaand

Historisch gezien zou je :httpc gebruiken dat wordt geleverd met Erlang/OTP of Elixir’s HTTPotion. HTTPoison is nu populairder, met een schonere syntax en gebouwd op Hackney, een robuuste HTTP-client voor Erlang.

Alternatieven voor HTTPoison zijn onder andere Tesla – een flexibele HTTP-client met ondersteuning voor middleware, en Mint – een glanzende, laagniveau HTTP-client.

Wat implementatie betreft, handelen deze bibliotheken zaken af als connection pooling, SSL en keep-alive, lastige zaken die essentieel zijn voor efficiënte HTTP-verzoeken. Ze gedragen zich als vriendelijke bibliothecarissen die zich bezighouden met het lastige werk, zodat je niet zelf door de stapels hoeft te kruipen.

Zie Ook