2016年11月10日木曜日

ElixirでのPlugの基本

ElixirでのPlugの基本です。Plug.Connを利用する場合は、initで初期化して、callするということなのでしょうか。わかった気分を味わいつつも、ますます闇の中へ。

Plugとは?

  • Webアプリケーション間の構成可能なモジュールの仕様
  • Erlang VM内の異なるWebサーバーの接続アダプタ

/my_plug/lib/my_plug.ex
defmodule MyPlug do
  import Plug.Conn

  def init(opts) do
    Map.put(opts, :my_option, "Hello")
  end

  def call(conn, opts) do
    conn
    |> put_resp_content_type("text/plain")
    |> send_resp(200, "#{opts[:my_option]}, World!")
  end
end
コンパイルして、Cowboyを起動
iex(1)> c "/path/to/my_plug/lib/my_plug.ex"
[MyPlug]
iex(2)> {:ok, _} = Plug.Adapters.Cowboy.http MyPlug, %{}
{:ok, #PID<123>}

参考サイト
Getting started with Plug in Elixir(Brian Stortiさん)
Plug.Conn(Plug)

0 件のコメント:

コメントを投稿