annotation Athena::Routing::Annotations::Route

Overview

Annotation representation of an ART::Route. Most commonly this will be applied to a method to define it as the controller for the related route, but could also be applied to a controller class to apply defaults to all other ARTA::Route within it. Custom implementations may support alternate APIs. See ART::Route for more information.

Configuration

Various fields can be used within this annotation to control how the route is created. All fields are optional unless otherwise noted.

WARNING Not all fields may be supported by the underlying implementation.

path

Type: String | Hash(String, String) - required

The path of the route.

name

Type: String

The unique name of the route. If not provided, a unique name should be created automatically.

requirements

Type: Hash(String, String | Regex)

A Hash of patterns that each parameter must match in order for the route to match.

defaults

Type: Hash(String, _)

The values that should be applied to the route parameters if they were not supplied within the request.

host

Type: String | Regex

Require the host header to match this value in order for the route to match.

methods

Type: String | Enumerable(String)

A whitelist of the HTTP methods this route supports.

schemes

Type: String | Enumerable(String)

A whitelist of the HTTP schemes this route supports.

condition

Type: ART::Route::Condition

A callback used to dynamically determine if the request matches the route.

priority

Type: Int32

A value used to control the order the routes are registered in. A higher value means that route will be registered earlier.

locale

Type: String

Allows setting the locale this route supports. Sets the special _locale route parameter.

format

Type: String

Allows setting the format this route supports. Sets the special _format route parameter.

stateless

Type: Bool

If the route should be cached or not.

Defined in:

annotations.cr