週刊Elixirライブラリ2015-2
Elixirのライブラリの解説を週ごとにお届けする記事です。
解説が間違っていた場合には、コメントか@hayabusa333にご連絡くださると嬉しいです。
今週はPlugについて
# Plug is 何?
1. Webアプリケーション間での構成可能なモジュールの仕様
2. ErlangのVM内で動いているWebサーバーの接続アダプタ
# インストール方法
# mix new にてプロジェクト作成に必要となる基本セットを作成し、
# mix.exs を変更する
$ mix new my_plug
$ cd my_plug
$ vim mix.exs
# plugを使用するためにインストールするバージョンを記載
# plugにて接続するwebサーバとしてCowboyもインストールするために記載
def deps do
[{:cowboy, "~> 1.0.0"},
{:plug, "~> 0.12"}]
end
# アプリケーションにてcowboyとplugを使うように指定
def application do
[applications: [:cowboy, :plug]]
end
# cowboy plugをインストール
$ mix deps.get
lib/my_plug.ex にてテスト用のアプリケーションを記載
$ vim lib/my_plug
defmodule MyPlug do
import Plug.Conn
def init(options) do
# initialize options
options
end
# 呼び出し処理があった場合に、ステータスコード200
# Hellorworldを画面に表示することを記載
def call(conn, _opts) do
conn
|> put_resp_content_type("text/plain")
|> send_resp(200, "Hello world")
end
end
# plugを使ってCowboyと接続するむねを記載
Plug.Adapters.Cowboy.http MyPlug, []
# コンパイルを実施
$ iex -S mix
Erlang/OTP 17 [erts-6.4] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]
Could not find rebar, which is needed to build dependency :ranch
I can install a local copy which is just used by mix
Shall I install rebar? [Yn] y
# 記載した my_plug を実行する
mix run --no-halt lib/my_plug.ex
# 実行が http://localhost:4000 にアクセスし、Helloworldが表示されることを確認する
以上となります。
今回のコードはPlugとcowboyの接続のみのコードとなり、最小限のコードとなります。
実際にはplugには多くのメソッドなどがありますので、ルーティングなど最低限使用する部分は
そのうち説明できれば良いなっと思います。
それでは皆様、良いElixirライフを