Getting Started | API | Elements | Actions | Validators | Handlers | Configuration Options | Advanced Guides | Troubleshooting | About
Nitrogen's default route handler gives you an easy way to add a no-nonsense RESTful handler to a page module. If you need to add a simple a RESTful interface without wanting to deal with Webmachine or Cowboy's restful handlers, and just use straight up Nitrogen, you can do this trivially.
Simply stated, if you add -behaviour(nitrogen_rest).
to a module, instead of looking for a main()
function as the entry point, it will instead expect an entry point based on the HTTP request method used. So a GET
request will look for a get()
function, and so on.
Each Entry Point function expects a single argument, PathInfo
, which is exactly yhe same information that would be retrieved from calling wf:path_info()
.
Commonly used Request methods and their corresponding entry points
GET
:: get(PathInfo)
POST
:: post(PathInfo)
PUT
:: put(PathInfo)
DELETE
:: delete(PathInfo)
Less commonly used Request methods:
CONNECT
:: connect(PathInfo)
TRACE
:: trace(PathInfo)
OPTIONS
:: options(PathInfo)
(You might notice the pattern here: the HTTP status code is made lower-case and converted to an atom, and that is the function called.
All the above functions are expected to return either a Body
, which can be a typical Nitrogen body (with Nitrogen elements), or a 2-tuple, {StatusCode, Body}
, where StatusCode is the HTTP status code of the return. If only a Body
is returned, the StatusCode
is the standard 200 status code.