Как я могу получить структуру conn после действия контроллера Phoenix - PullRequest
1 голос
/ 07 января 2020

Я хочу отправить некоторую информацию о соединении моему Elasticsearch после всех действий контроллера моего проекта, например: ответ действия контроллера, параметры запроса и конечная точка.

Что мы можем сделать, если нам нужно работать со структурой conn, возвращаемой контроллером после разрешения действия?

1 Ответ

2 голосов
/ 07 января 2020

Я получил его, создав в своем приложении плагин:

defmodule MyAppWeb.Plugs.RequestLogger do
  @moduledoc false

  alias Plug.Conn

  def init(opts), do: opts

  def call(conn, _opts) do
    IO.puts("Getting conn after all controller actions here " <> Integer.to_string(conn.status))
    conn
  end
end

И установив его в «MyAppWeb.Endpoint» после «MyAppWeb.Router»:

defmodule MyAppWeb.Endpoint do
  # ...
  plug MyAppWeb.Router
  plug MyAppWeb.Plugs.RequestLogger
end
...