public function addRoute($methods, $uri, $action)
{
if (is_string($action)) {
$action = ['uses' => $action, 'controller' => $action];
} elseif ($action instanceof Closure) {
$action = [$action];
}
$action = $this->mergeLastGroupAttributes($action);
$action = $this->addControllerMiddlewareToRouteAction($action);
$uri = $uri === '/' ? $uri : '/' . trim($uri, '/');
if (!empty($action['prefix'])) {
$uri = '/' . ltrim(rtrim(trim($action['prefix'], '/') . '/' . trim($uri, '/'), '/'), '/');
unset($action['prefix']);
}
$action['uri'] = $uri;
return $this->adapter->addRoute((array) $methods, $action['version'], $uri, $action);
}
/** * Merge routes defined by packages into API router. * * @param \Dingo\Api\Routing\Router $api * @param \Illuminate\Routing\Router $router * @return void */ protected function mergePackgeRoutes(ApiRouter &$api, Router $router) { foreach ($router->getRoutes() as $route) { $api->version(array_keys($api->getRoutes()), function ($api) use($route) { $action = $route->getAction(); // Remove prefix if present if (isset($action['prefix'])) { unset($action['prefix']); } $api->addRoute($route->getMethods(), $route->uri(), $action); }); } }