Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest Yii2从后端控制器调用api方法_Rest_Api_Yii2 - Fatal编程技术网

Rest Yii2从后端控制器调用api方法

Rest Yii2从后端控制器调用api方法,rest,api,yii2,Rest,Api,Yii2,我已经在遵循Yii Rest API文档的基础上实现了基于高级模板的API。我想从后端控制器调用API方法。有可能吗 谢谢你可以用来测试你的api。 首先下载你的邮递员版本,然后选择你的方法。然后确定您的输入和url。最后按下发送按钮。 您的url可能如下所示 http://yourdomain.com/backend/web/index.php?r=yourController/yourAction yourdomain.com是您的域,yourController是控制器,yourActi

我已经在遵循Yii Rest API文档的基础上实现了基于高级模板的API。我想从后端控制器调用API方法。有可能吗

谢谢你可以用来测试你的api。 首先下载你的邮递员版本,然后选择你的方法。然后确定您的输入和url。最后按下发送按钮。 您的url可能如下所示

http://yourdomain.com/backend/web/index.php?r=yourController/yourAction
yourdomain.com
是您的域,
yourController
是控制器,
yourAction
是您的操作。

一种方法就是这样

假设您的rest控制器位于前端

在后端应用程序配置中,您可以创建一个额外的“UrlManager”组件名称,例如:urlManagerForRest

return [
  'components' => [
      'urlManager' => [
          // here is your backend URL rules
      ],
      'urlManagerForRest' => [
          'class' => 'yii\web\urlManager',
          'baseUrl' => 'http://your_path/frontend/web/index.php',
          'enablePrettyUrl' => true,
          'showScriptName' => false,
      ],

  ],
];
然后,您应该调用以下命令来编写URL:

Yii::$app->urlManagerFrontEnd->createUrl();

所以,我终于找到了解决办法

我的Yii2应用程序具有高级模板。我已经创建了api模块

所以这个应用程序有3个端点

  • 原料药
  • 后端
  • 前端
我想从后端或前端调用api方法,这并不重要

因此,api的主要目标是模块。你可以看看这个

backend/config/main.php中

'modules' => [
    'api' => [
        'basePath' => '@api/modules/v1',
        'class' => 'api\modules\v1\Module'
    ]
],
然后举个例子

在后端/UserController/indexAction中

$res = Yii::$app->runAction('api/user/index');

这就是它的工作原理。希望它能对某些人有所帮助。

如果你的意思是调用这些API方法并处理其结果,你必须使用