mix_install_examplesからbandit.exsの紹介です(Elixir)


吹くからに秋の草木のしをるればむべ山風を嵐と言ふらむ

Advent Calendar 2022 71日目1の記事です。
I'm looking forward to 12/25,2022
私のAdvent Calendar 2022 一覧


はじめに

Elixirを楽しんでいますか

Mix.install/2のサンプル集であるmix_install_examplesからbanditを紹介します。

What's Mix.install/2 ?

Mix.install/2は、Elixir 1.12から追加されました。
Elixirでライブラリ(Hex)を追加するのは、1.11まではmix newでプロジェクトを作らないといけないなど、ひと手間必要でした。
Mix.install/2を使うことで、ちょっとした1ファイルで収まるようなスクリプトを書く際に.exsのみで完結できるようになりました。

具体例

具体例です。
私がよく使ういつものサンプルです。

Qiita APIを使わせていただいて、Elixirタグがついた最新の記事を20件取得しています

Mix.install [{:req, "~> 0.2.1"}]

"https://qiita.com/api/v2/items?query=tag:Elixir"
|> URI.encode()
|> Req.get!(finch_options: [pool_timeout: 50000, receive_timeout: 50000])
|> Map.get(:body)
|> Enum.map(& Map.take(&1, ["title", "url"]))

Qiitaさん、いつもありがとうございます!!!


bandit.exs

おもしろそうなサンプルってことで、今日はbanditを楽しんでみます。

What's bandit ?

Bandit is an HTTP server for Plug apps.

作者によるElixirConfの発表ビデオが公開されています。