Building a controller interface
In this section, we will learn what it takes to build a controller by leveraging the Plug package and everything we’ve learned about it.
To build our own controller, let’s start by creating a new Mix project by running the following command:
$ mix new goldcrest
Now, our goal is to be able to write a controller that looks something like a Phoenix controller:
defmodule ExampleController do
  # .. TODO: use/import modules
  def greet(conn, _params) do
    conn
    |> put_status(200)
    |> render(:json, %{data: "hello world"})
  end
end
			The previous controller defines one action, greet/2, which responds with a status of 200 along with the {"data": "hello world"} JSON body.
We have hidden the complexity of the use or import modules to introduce controller-like behavior to our module, but we will figure...