PhoenixRest
Resource routing and REST behaviour for Phoenix web applications.
PhoenixRest integrates the
PlugRest library into
your Phoenix application by making a new resource
macro available in
the existing router.
Instead of writing a Phoenix Controller
and implementing an action
function for each HTTP verb and path, use this library to create a
Resource
and define one or more optional callbacks that describe
your resource's RESTful behavior.
Documentation for PhoenixRest is available on hexdocs.
Source code is available on Github.
Package is available on hex.
Hello World
Add a new route to your router to match a path with a resource handler:
defmodule HelloPhoenix.Router do
use HelloPhoenix.Web, :router
resource "/hello", HelloPhoenix.HelloResource
end
Create a resource at web/resources/hello_resource.ex
defining the
resource handler, and implement the optional callbacks:
defmodule HelloPhoenix.HelloResource do
use PhoenixRest.Resource
def to_html(conn, state) do
{"Hello world", conn, state}
end
end
The docs
for PhoenixRest.Resource
list all of the supported REST callbacks
and their default values.
Installation
Add PhoenixRest to your Phoenix project in three steps:
Add
:phoenix_rest
to your list of dependencies inmix.exs
:def deps do [{:phoenix_rest, "~> 0.6"}] end
Ensure
phoenix_rest
is started before your application:def application do [applications: [:phoenix_rest]] end
Edit
web/web.ex
and add the router:def router do quote do use Phoenix.Router use PhoenixRest.Router end end
Tasks
You can generate a new PhoenixRest resource (with all of the callbacks implemented) by using a Mix task:
mix phx_rest.gen.resource UserResource
Upgrading
PhoenixRest is still in an initial development phase. Expect breaking changes at least in each minor version.
See the CHANGELOG for more information.
License
PhoenixRest copyright © 2016, Christopher Adams