protected final function callAction(Controller $controller, $action_name, array $args, $api_call)
 {
     $controller->setRequestData($args);
     if ($api_call && !$controller->usesAPI()) {
         App::i()->pass();
     } else {
         $controller->callAction($api_call ? 'API' : App::i()->request()->getMethod(), $action_name, $args);
     }
 }