Elixir:
Wysyłanie żądania HTTP

Jak to zrobić:

Elixir używa różnych pakietów do wysyłania żądań HTTP, ale popularnym wyborem jest HTTPoison. Oto jak możesz wysłać proste żądanie GET:

# Dodaj HTTPoison do swojego projektu dodając do `mix.exs`:
defp deps do
  [
    {:httpoison, "~> 1.8"}
  ]
end

# Potem uruchom `mix deps.get` aby pobrać zależności.

# Przykład żądania GET:
defmodule ExampleClient do
  def get_example_page do
    HTTPoison.get("http://example.com")
  end
end

# Wywołanie i przykładowa odpowiedź:
{status_code, response_body} = ExampleClient.get_example_page()
IO.inspect({status_code, String.trim(response_body)})

Powinieneś zobaczyć odpowiedź serwera jako kod statusu wraz z treścią, np. {200, "<html>...</html>"}.

Dogłębna analiza

HTTPoison bazuje na bibliotece hackney i jest powszechnie stosowany w społeczności Elixir ze względu na swoją prostotę i elastyczność. Istnieje od czasów Elixir 1.0, dając stabilne API dla wielu projektów. Alternatywy to Tesla, który oferuje middleware i większą konfigurowalność, oraz finch, skupiający się na wydajności przy użyciu HTTP/2.

Wysyłająć żądania HTTP, ważne jest też zrozumienie metody HTTP, której używasz. GET jest przeznaczony do pobierania danych, POST do ich wysyłania, PUT do aktualizacji, a DELETE do ich usuwania. Odpowiedź serwera zawiera standardowy kod statusu HTTP oraz, w większości przypadków, treść wiadomości, która może być w różnych formatach, takich jak HTML, JSON czy XML.

Zobacz także