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 HTTPoison
ille 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.