Working with Controllers
In the previous chapter, we learned how to use the Plug package to simplify a pipeline of operations that are applied to an HTTP connection, represented by the %Plug.Conn{}
struct. We also learned how we can leverage the Plug.Router
plug to handle a request matching an HTTP method and path. In this chapter, we will take our Plug knowledge to the next level by applying the same philosophy (of updating a connection struct in a pipeline) to implement a controller. We will also take a quick look at how Phoenix implements its controllers and take inspiration from that to build our own controllers. Before doing any of that, however, we will learn what controllers are in a Model-View-Controller (MVC) framework and understand some of their basics.
By the end of this chapter, you will have learned the ins and outs of controllers in Phoenix, and how Phoenix uses Plug and Cowboy to route HTTP requests to proper handlers. You’ll also have learned the fundamentals...