JavaScriptを有効にしてください

【Elixir】 PhoenixでバックグラウンドでルーティングのURLを取得する方法

 ·  ☕ 1 分で読めます

【Elixir】 PhoenixでバックグラウンドでルーティングのURLを取得する方法

ElixirのPhoenixフレームワークでWebアプリケーションを開発する際、バックグラウンドでルーティングのURLを取得するケースがあります。
connを使うパターンと使わないパターンについて説明します。

  • connはPhoenixのコネクション構造体で、リクエストのコンテキストを提供します。

conn を使うパターン

コントローラーなどで行うパターンです。

  1. ルーターモジュールのエイリアス
1
alias MyAppWeb.Router.Helpers, as: Routes
  1. URLの生成
1
2
3
4
5
# パスの取得
path = Routes.route_path(conn, :show, id)

# URLの取得
url = Routes.route_url(conn, :show, id)

conn を使わないパターン

こちらはバッチ処理などセッションがない際に有用なパターンです。

  1. ルーターモジュールのエイリアス
1
alias MyAppWeb.Router.Helpers, as: Routes
  1. URLの生成
1
2
3
4
5
# パスの取得
path = Routes.route_path(MyAppWeb.Endpoint, :show, id)

# URLの取得
url = Routes.route_url(MyAppWeb.Endpoint, :show, id)

まとめ

Phoenixフレームワークでは、connを使わなくても、簡単にルーティングのURLを生成ができます。

共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer