はじめに
- KFIEという近畿大学産業理工学部の情報系コミュニティがあります
- 最近は、毎週火曜日にLT会をやっているそうです
- 私が学生だったのはもうずいぶん昔のことなのですが、参加させてもらっています
- 毎週、5分間時間をもらって、Elixirいいよ! を伝えていきたいとおもいます
- 今日は以下を学びます
- HTTP GET!
- A journey of a thousand miles begins with a single step.
- この記事はElixirを触るのがはじめてという方に向けて書いています
もくじ
001 mix new, iex -S mix, mix format
|> 002 型
|> 003 Pattern matching
|> 004 Modules and functions
|> 005 Pipe operator and Enum module
|> 006 HTTP GET!
|> 007 Flow
|> 008 AtCoderを解いてみる
|> 999 Where to go next
準備
$ mix new hello_http
$ cd hello_http
依存関係の解消
- hexでパッケージをさがします
- 今回は以下を使います
- 上記のページの右のほうに書いてある記述を参考に
deps
を書き換えます
mix.exs
defp deps do
[
{:httpoison, "~> 1.7"},
{:jason, "~> 1.2"}
]
end
$ mix deps.get
HTTP GET!
lib/hello_http.ex
defmodule HelloHttp do
@query URI.encode_query(%{"query" => "tag:Elixir"})
def run do
"https://qiita.com/api/v2/items?#{@query}"
|> HTTPoison.get()
|> handle_response()
|> Jason.decode!()
end
defp handle_response({:ok, %HTTPoison.Response{body: body, status_code: 200}}) do
body
end
defp handle_response(_) do
raise "error"
end
end
-
@query
はModule attributesと呼ばれるものです - 「多くのElixirプログラマは、JavaやRubyでは定数を使うようなところで使っている」そうです
実行
$ iex -S mix
iex> HelloHttp.run
GETはわかったけどその後、それをどうしたらいいの?
- たとえばこういうものが作れます
- 【毎日自動更新】QiitaのElixir LGTMランキング!
Wrapping Up
- 今日のポイントは、hexの探し方と、
mix deps.get
です - サンプルコードの
tag
にお好みの言語を設定してHTTP GETをお楽しみください - 次回は、Flow
- 来週を待ちきれない方は、リソースやコミュニティの情報を Where to go next にまとめていますのでダイブしてください!
- Enjoy!!!