本稿は、「Elixir入門」シリーズの番外編として、Plug
ライブラリのインストールから立ち上げまでをご説明します。
Plug
は、webライブラリやフレームワークを構築するための基盤となるプロジェクトです。Plugライブラリを使うと、開発者はwebサーバーで動く独自のPlugが定められます。ここでは、Plug
をインストールして簡単なコードをローカルサーバーで開いてみます。
Plug
にはつぎのふたつの役割があります。
- webアプリケーション間で組み立てられるモジュールの仕様
- Erlang VMにおける異なるwebサーバー用の接続アダプター
mixでElixirプロジェクトをつくる
まず、mixでElixirプロジェクトをつくります。コマンドラインツールでmix new
コマンドに続けて、プロジェクト名のパスを打ち込んでください。
$ mix new my_plug
プロジェクトのパス(my_plug
)がつくられて、つぎのようなファイルをつくったことが示されるはずです(図001)。
* creating README.md
* creating .formatter.exs
* creating .gitignore
* creating mix.exs
* creating config
* creating config/config.exs
* creating lib
* creating lib/my_plug.ex
* creating test
* creating test/test_helper.exs
* creating test/my_plug_test.exs
Your Mix project was created successfully.
You can use "mix" to compile it, test it, and more:
図001■mixでつくられたプロジェクトファイル
Plugのインストール
アプリケーションのディレクトリ(my_plug
)に切り替えたら、ファイルmix.exs
のapplication
とdeps
につぎのように依存関係を加えます。:plug_cowboy
は、webサーバーとしてCowboyをPlugとともに使う設定です。
defmodule MyPlug.MixProject do
def application do
[
applications: [:plug_cowboy]
]
end
defp deps do
[
{:plug_cowboy, "~> 2.0"}
]
end
end
-
application
: アプリケーションの依存関係を定めます。 -
deps
: プロジェクトの依存関係を定めます。
そして、mix deps.get
コマンドで依存関係を解決してください。
$ mix deps.get
Resolving Hex dependencies...
Dependency resolution completed:
New:
cowboy 2.6.1
cowlib 2.7.0
mime 1.3.1
plug 1.7.1
plug_cowboy 2.0.1
plug_crypto 1.0.0
ranch 1.7.1
* Getting plug_cowboy (Hex package)
* Getting cowboy (Hex package)
* Getting plug (Hex package)
* Getting mime (Hex package)
* Getting plug_crypto (Hex package)
* Getting cowlib (Hex package)
* Getting ranch (Hex package)
サンプルコードを動かす
mixでつくられたプロジェクトファイルmy_plug.ex
のモジュールMyPlug
に、つぎのテスト用の関数を定めます。
defmodule MyPlug do
import Plug.Conn
def init(options) do
# optionsの初期化
options
end
def call(conn, _opts) do
conn
|> put_resp_content_type("text/plain")
|> send_resp(200, "Hello world")
end
end
そして、mixプロジェクトをつぎのようにiex
のセッションで開きます。
$ iex -S mix
Plug
アプリケーションの中で前掲モジュールを動かすのがつぎのコードです。ターミナルからサーバーが起ち上がります。http://localhost:4000/のURLを開くと、ページに"Hello world"のテキストが示されるでしょう(図002)。これで、Plug
アプリケーションが起動できました。
iex> {:ok, _} = Plug.Cowboy.http MyPlug, []
{:ok, #PID<0.208.0>}
図002■サーバーから開いたページにテキストが示される
Elixir入門もくじ
- Elixir入門 01: コードを書いて試してみる
- Elixir入門 02: 型の基本
- Elixir入門 03: 演算子の基本
- Elixir入門 04: パターンマッチング
- Elixir入門 05: 条件 - case/cond/if
- Elixir入門 06: バイナリと文字列および文字リスト
- Elixir入門 07: キーワードリストとマップ
- Elixir入門 08: モジュールと関数
- Elixir入門 09: 再帰
- Elixir入門 10: EnumとStream
- Elixir入門 11: プロセス
- Elixir入門 12: 入出力とファイルシステム
- Elixir入門 13: aliasとrequireおよびimport
- Elixir入門 14: モジュールの属性
- Elixir入門 15: 構造体
- Elixir入門 16: プロトコル
- Elixir入門 17: 内包表記
- Elixir入門 18: シギル
- Elixir入門 19: tryとcatchおよびrescue
- Elixir入門 20: 型の仕様とビヘイビア
- Elixir入門 21: デバッグ
- Elixir入門 22: Erlangライブラリ
- Elixir入門 23: つぎのステップ
番外
- Elixir入門: Plugを使うには
Top comments (0)