DEV Community

Cover image for Plug me in
Javier Guerra
Javier Guerra

Posted on

5 1

Plug me in

Plug is a great tool. It brings a great way to extend, in a clear and encapsulated way, behaviors and state changes to controller flow.

For example, we can do a plug to set a custom header in a router pipe for Phoenix.

To do so we Crete a plug module

defmodule MyApp.CustomHeadersPlug do
  import Plug.Conn

  def init(opts), do: opts

  def call(conn) do
    conn
    |> put_resp_header("Custom-Header", "value")
  end
End
Enter fullscreen mode Exit fullscreen mode

Then we can implement in the router:

  pipeline :web do
    plug MyApp.CustomHeadersPlug
    ...
  end
Enter fullscreen mode Exit fullscreen mode

And that's it. Any request going through this pipeline will have in it's response x-custom-header: value.

Top comments (0)

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay