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)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay