HTTP-pyynnön lähettäminen

Elixir:
HTTP-pyynnön lähettäminen

How to:

Elixirissä HTTP-pyyntöjen tekeminen käy usein HTTPoison-kirjaston kautta. Tässä helppo esimerkki GET-pyynnöstä:

# ENSIKSI: Jos ei jo asennettu, lisää `HTTPoison` riippuvuuteen mix.exs-tiedostoosi:
defp deps do
  [
    {:httpoison, "~> 1.8"}
  ]
end

# Sitten, pyynnön tekeminen:
defmodule HTTPExample do
  def fetch(url) do
    HTTPoison.get(url)
  end
end

# Otetaan vastaan vastaus ja tulostetaan se:
{:ok, response} = HTTPExample.fetch("http://httpbin.org/get")
IO.inspect(response.status_code) # Tulostaa 200
IO.puts(response.body)           # Tulostaa pyydetyn resurssin raakadatan

Sample output:

200
{
  "args": {}, 
  "headers": {
    "Host": "httpbin.org"
    ...
  }, 
  ...
}

Deep Dive

Elixirin suosio nousi erityisesti rinnakkaistamisen ja vikasietoisuuden vuoksi, mikä sopii hyvin moderneihin verkkosovelluksiin. Historiallisesti katsottuna, HTTP-pyyntöjen lähettäminen tapahtui Elixirissä matalamman tason kirjastojen, kuten :httpc (Erlangin HTTP client), kautta. HTTPoison on korkean tason kirjasto, joka käyttää hackney-kirjastoa ja tarjoaa käyttäjäystävällisen syntaksin Elixir-kehittäjille.

Vaihtoehtoisia kirjastoja HTTPoisonille ovat esimerkiksi Tesla, joka on modulaarinen HTTP-asiakaskirjasto middleware-tuella, sekä Finch, joka on keskittynyt suorituskykyyn Elixirin OTP-prinsiippejä noudattaen.

Lähetettäessä HTTP-pyyntöä tärkeää on ymmärtää eri pyyntötyypit (GET, POST, PUT, DELETE jne.), statuskoodit ja oikean HTTP-headerin määrittäminen.

See Also