Routing - airtype/craft-httpmessages GitHub Wiki
The pattern for route definitions can be seen below.
<?php
return [
'<pattern>' => [
'<http verb>' => [
<middleware>,
<middleware>
],
],
];
Things to note:
-
<pattern>
keys utilize Craft's native routing patterns. - Each http verb must be explicitly defined to be utilized.
- The array of middleware will be merged with the global middleware defined in the
httpmessages.php
config file.
In practice, route definitions will look similar to the following.
<?php
use Psr7Middlewares\Middleware;
use Craft\HttpMessages_Middleware;
return [
'/api/user' => [
'GET' => [
Middleware::responseTime(),
HttpMessages_Middleware::kernel()
->setController('Craft\\UserController')
->setMethod('index'),
],
],
'/api/user/(?P<id>\d+)' => [
'GET' => [
Middleware::responseTime(),
HttpMessages_Middleware::fractal()
->setTransformer('Craft\\OrderTransformer'),
HttpMessages_Middleware::kernel()
->setController('Craft\\UserController')
->setMethod('show'),
],
'POST' => [
Middleware::responseTime(),
HttpMessages_Middleware::csrf(),
HttpMessages_Middleware::fractal(),
HttpMessages_Middleware::kernel()
->setController('Craft\\UserController')
->setMethod('create'),
],
'PUT' => [
Middleware::responseTime(),
HttpMessages_Middleware::csrf(),
HttpMessages_Middleware::fractal(),
HttpMessages_Middleware::kernel()
->setController('Craft\\UserController')
->setMethod('update'),
],
'DELETE' => [
Middleware::responseTime(),
HttpMessages_Middleware::csrf(),
HttpMessages_Middleware::fractal(),
HttpMessages_Middleware::kernel()
->setController('Craft\\UserController')
->setMethod('delete'),
],
],
];