Building the controller pipeline
Let’s start with the example controller we created in the previous chapter as part of an example for the Goldcrest.Controller module:
lib/goldcrest/support/example_controller.ex
defmodule Goldcrest.ExampleController do
import Plug.Conn
import Goldcrest.Controller
def call(conn, action: action) do
apply(__MODULE__, action, [conn, conn.params])
end
def greet(conn, _params) do
conn
|> put_status(200)
|> render(:json, %{status: "ok"})
end
# ..
end
And just as in the previous chapter, we can start an HTTP server serving the preceding controller by running an iex shell and loading the controller and router files:
$ iex -S mix
iex> Code.require_file("./lib/goldcrest/support/example_controller.ex")
iex> Code.require_file("./lib...