class Azu::Router
- Azu::Router
- Reference
- Object
Overview
Defines an Azu Router
The router provides a set of methods for mapping routes that dispatch to specific endpoints or handers. For example
MyAppWeb.router do
root :web, ExampleApp::HelloWorld
ws "/hi", ExampleApp::ExampleChannel
routes :web, "/test" do
get "/hello/", ExampleApp::HelloWorld
get "/hello/:name", ExampleApp::HtmlEndpoint
get "/hello/json", ExampleApp::JsonEndpoint
end
end
You can use most common HTTP verbs: GET, POST, PUT, PATCH, DELETE, TRACE and OPTIONS.
endpoint = ->(env) { [200, {}, ['Hello from Hanami!']] }
get '/hello', to: endpoint
post '/hello', to: endpoint
put '/hello', to: endpoint
patch '/hello', to: endpoint
delete '/hello', to: endpoint
trace '/hello', to: endpoint
options '/hello', to: endpoint
Defined in:
azu/router.crConstant Summary
-
METHOD_OVERRIDE =
"_method"
-
RADIX =
Radix::Tree(Route).new
-
RESOURCES =
["connect", "delete", "get", "head", "options", "patch", "post", "put", "trace"] of ::String
Instance Method Summary
-
#add(path : Path, endpoint : HTTP::Handler, method : Method = Method::Any)
Registers a route for a given path
- #connect(path : Router::Path, handler : HTTP::Handler)
- #delete(path : Router::Path, handler : HTTP::Handler)
- #get(path : Router::Path, handler : HTTP::Handler)
- #head(path : Router::Path, handler : HTTP::Handler)
- #options(path : Router::Path, handler : HTTP::Handler)
- #patch(path : Router::Path, handler : HTTP::Handler)
- #post(path : Router::Path, handler : HTTP::Handler)
- #process(context : HTTP::Server::Context)
- #put(path : Router::Path, handler : HTTP::Handler)
-
#root(endpoint : HTTP::Handler)
Registers the main route of the application
-
#routes(scope : String = "", &)
Adds scoped routes
- #trace(path : Router::Path, handler : HTTP::Handler)
-
#ws(path : String, channel : Channel.class)
Registers a websocket route
Instance Method Detail
Registers a route for a given path
add path: '/proc', endpoint: ->(env) { [200, {}, ['Hello from Hanami!']] }, method: Method::Get
add path: '/endpoint', endpoint: Handler.new, method: Method::Get
def root(endpoint : HTTP::Handler)
#
Registers the main route of the application
root :web, ExampleApp::HelloWorld
Registers a websocket route
ws "/hi", ExampleApp::ExampleChannel