Sphereとともに

scalaとかplayframeworkとか。技術ブログにしたいなと。環境は Windows7x64, mac です。たまに声優さん情報が混ざります。最近ちょっとClojure触りました。

Elixir Phoenixのドキュメントを読み漁る Routing

Routing – Phoenix v1.3.0

use HelloWeb, :router と書いてRouterであると宣言している感じ

get とかは match/5 なマクロで、ほかにも POST, PUT, PATCH, DELETE, OPTIONS, CONNECT, TRACE and HEAD. があるよ

最初の引数はpath、2つめは処理をするController

複数のルーティング定義をした場合は上から順に見ていって、マッチした部分で処理を終了する

resources というのを使うとちょっと楽ができる

resources "/users", UserController とするだけで、

user_path  GET     /users           HelloWeb.UserController :index
user_path  GET     /users/:id/edit  HelloWeb.UserController :edit
user_path  GET     /users/new       HelloWeb.UserController :new
user_path  GET     /users/:id       HelloWeb.UserController :show
user_path  POST    /users           HelloWeb.UserController :create
user_path  PATCH   /users/:id       HelloWeb.UserController :update
           PUT     /users/:id       HelloWeb.UserController :update
user_path  DELETE  /users/:id       HelloWeb.UserController :delete

と解釈される。

もちろん only とか except で必要なものだけに絞ることもできる

forward を使うと他のPlugに処理を渡せる

パスヘルパーもあるよ

resource のネストもできる!便利だ

スコープ付きルートも定義できるよ scope "/admin", as: :admin do とか scope "/admin", HelloWeb.Admin, as: :admin do みたいにね

ところで pipe_through :browser ってなんだ?

https://hexdocs.pm/phoenix/routing.html#pipelines

ぐぐってたらいいまとめがあった

qiita.com

プログラミングElixir

プログラミングElixir