Created
February 3, 2015 13:29
-
-
Save bravo-kernel/926f81e1705d78e9c3ca to your computer and use it in GitHub Desktop.
Custom REST routes for api-prefixed route (does not respect Accept Header)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Prefixed API routes (served using Crud.ApiListener). | |
*/ | |
Router::prefix('api', function ($routes) { | |
// Enable .json extension parsing | |
$routes->extensions(['json', 'xml']); | |
/** | |
* API index route. | |
*/ | |
$routes->connect( | |
'/:controller', | |
[ | |
'action' => 'index', | |
'_method' => 'GET', | |
'_ext' => ['json', 'xml'], | |
] | |
); | |
/** | |
* API view route. | |
*/ | |
$routes->connect( | |
'/:controller/:id', | |
[ | |
'action' => 'view', | |
'_method' => 'GET', | |
'_ext' => ['json', 'xml'], | |
], | |
[ | |
'id' => self::ID . '|' . self::UUID, | |
'pass' => [ | |
'id', | |
] | |
] | |
); | |
/** | |
* API add route. | |
*/ | |
$routes->connect( | |
'/:controller', | |
[ | |
'action' => 'add', | |
'_method' => 'POST', | |
'_ext' => ['json', 'xml'], | |
] | |
); | |
/** | |
* API edit route. | |
*/ | |
$routes->connect( | |
'/:controller/:id', | |
[ | |
'action' => 'edit', | |
'_method' => 'PUT', | |
'_ext' => ['json', 'xml'], | |
], | |
[ | |
//'id' => '@todo: someUuidRegEx for more strict checking', | |
'id' => self::ID . '|' . self::UUID, | |
'pass' => [ | |
'id', | |
] | |
] | |
); | |
/** | |
* API delete route. | |
*/ | |
$routes->connect( | |
'/:controller/:id', | |
[ | |
'action' => 'delete', | |
'_method' => 'DELETE', | |
'_ext' => ['json', 'xml'], | |
], | |
[ | |
//'id' => '@todo: someUuidRegEx for more strict checking', | |
'id' => self::ID . '|' . self::UUID, | |
'pass' => [ | |
'id', | |
] | |
] | |
); | |
// No fallback routes for the API, all non-matches should 404 | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment