setRouteClass(DashedRoute::class); $routes->scope('/', function (RouteBuilder $builder): void { // The base path goes straight to the API documentation $builder->redirect('/', '/docs'); // Swagger UI (API documentation), spec served from webroot/openapi.yaml $builder->connect('/docs', ['controller' => 'Docs', 'action' => 'index']); /* * ...and connect the rest of 'Pages' controller's URLs. */ $builder->connect('/pages/*', 'Pages::display'); }); /* * REST API - all endpoints under /api, JSON in and out. */ $routes->prefix('Api', function (RouteBuilder $builder): void { $builder->post('/auth/login', ['controller' => 'Auth', 'action' => 'login']); $builder->connect('/auth/me', ['controller' => 'Auth', 'action' => 'me']); $builder->resources('Users'); $builder->resources('Customers', function (RouteBuilder $builder): void { $builder->resources('Cars', ['only' => ['index', 'create']]); }); $builder->resources('Cars'); }); /* * If you need a different set of middleware or none at all, * open new scope and define routes there. * * ``` * $routes->scope('/api', function (RouteBuilder $builder): void { * // No $builder->applyMiddleware() here. * * // Parse specified extensions from URLs * // $builder->setExtensions(['json', 'xml']); * * // Connect API actions here. * }); * ``` */ };