• Модуль: rest
  • Путь к файлу: ~/bitrix/modules/rest/lib/engine/restmanager.php
  • Класс: BitrixRestEngineRestManager
  • Вызов: RestManager::onFindMethodDescription
static function onFindMethodDescription($potentialAction)
{
	$restManager = new static();
	$potentialActionData = ScopeManager::getInstance()->getMethodInfo($potentialAction);

	$request = new BitrixMainHttpRequest(
		Context::getCurrent()->getServer(),
		['action' => $potentialActionData['method']],
		[], [], []
	);

	$router = new EngineRouter($request);
	$controllersConfig = Configuration::getInstance($router->getModule());
	if (empty($controllersConfig['controllers']['restIntegration']['enabled']))
	{
		return false;
	}

	/** @var Controller $controller */
	list($controller) = $router->getControllerAndAction();
	if (!$controller || $controller instanceof EngineDefaultController)
	{
		return false;
	}

	return [
		'scope' => static::getModuleScopeAlias($potentialActionData['scope']),
		'callback' => [
			$restManager, 'processMethodRequest'
		]
	];
}