Trot.Router
Module for creating routes based on the URL path.
Routes are specified using one of the HTTP method macros:
get/2 post/2 put/2 patch/2 delete/2 options/2
.
The first argument is a the path to route to, and the second argument is the
block of code to execute. See examples below.
Module attributes
@path_root
: URL path to prefix to all routes in the module. Defaults to “/“.
@static_root
: File path to use as the root when looking for static files.
Defaults to “priv/static”.
Summary↑
delete(path, options \\ [], list3) | |
do_redirect(path, conn) | Redirect the request to another location |
extract_path_and_guards(path) | Extract the path and guards from the path |
get(path, options \\ [], list3) | |
make_response(conn, conn) | Encodes HTTP responses as appropriate and passes them to Plug.Conn |
options(path, options \\ [], list3) | |
patch(path, options \\ [], list3) | |
post(path, options \\ [], list3) | |
put(path, options \\ [], list3) | |
redirect(from, to) | Redirects all incoming requests for “from” to “to”. The value of “to” will be put into the Location response header |
static(at) | Sets up a route for static to path at the @static_root, which defaults to “priv/static” |
static(at, from) | Sets up a route to static assets. All requests beginning with “at” will look for a matching file under “from”. @static_root will be prepended to “from” and defaults to “priv/static” |
Functions
Redirect the request to another location.
Extract the path and guards from the path.
Encodes HTTP responses as appropriate and passes them to Plug.Conn.
Examples
# Sets status code to 200 with an empty body
get "/" do
200
end
# Returns an empty body with a status code of 404
get "/bad" do
:bad_request
end
# Sets the status code to 200 with a text body
get "/text" do
"Thank you for your question."
end
# Sets the status code to 201 with a text body
get "/text/body" do
{201, "Thank you for your question."}
end
# Sets status code to 200 with a JSON-encoded body
get "/json" do
%{"hyper" => "social"}
end
# Sets the status code to 201 with a JSON-encoded body
get "/json/code" do
{201, %{"hyper" => "social"}}
end
# Set the response manually as when using Plug directly
get "/conn" do
send_resp(conn, 200, "optimal tip-to-tip efficiency")
end
# Pattern match part of the path into a variable
get "/presenter/:name" do
"The presenter is #{name}"
end
# Redirect the incoming request
get "/redirect" do
{:redirect, "/text/body"}
end
Macros
Redirects all incoming requests for “from” to “to”. The value of “to” will be put into the Location response header.
Sets up a route for static to path at the @static_root, which defaults to “priv/static”.
Sets up a route to static assets. All requests beginning with “at” will look for a matching file under “from”. @static_root will be prepended to “from” and defaults to “priv/static”.
Examples
static "/js", "assets/js"
@static_root "priv/assets/static"
static "/css", "css"