🤖

ElixirでURLを扱うときはURIモジュールを使おう

2021/03/20に公開

ElixirでURLを扱うときはURIモジュールというモジュールがあるので、これを利用するとgoodです。

https://hexdocs.pm/elixir/URI.html

hexdocsにある使用例を紹介します。

URLのparse

iex> URI.parse("https://elixir-lang.org/")
%URI{
  authority: "elixir-lang.org",
  fragment: nil,
  host: "elixir-lang.org",
  path: "/",
  port: 443,
  query: nil,
  scheme: "https",
  userinfo: nil
}

pathのmerge

iex> URI.merge(URI.parse("http://google.com"), "/query") |> to_string()
"http://google.com/query"

URL文字列への変換

iex> uri = URI.parse("http://google.com")
iex> URI.to_string(uri)
"http://google.com"

こんな具合に、自分で文字列展開するよりもスッキリと記述できます。
構造体へ変換することにより関数パターンマッチで分岐させることもできるため、「portが443の場合とそれ以外で処理を分岐させる」なども簡単です。

URLをいじるタイミングがきたらぜひ思い出してください 💡

Discussion