消费webservice laravel

时间:2018-02-04 15:50:24

标签: laravel rest web-services

我有两个laravel项目,一个只有我的愿景( AppView ),另一个有Web服务( AppWs ),在我的网络服务中我有以下路线 路由项目AppWs     Route :: group(['前缀' =>' api'],function(){

    Route::group(['prefix' => 'user'], function(){

        Route::group(['prefix' => 'tipoprojeto'], function(){           

            Route::get('','Painel\TipoProjetoController@All');

         });        
    }); 
});

当我访问http://localhost/WebServiceApp/public/api/user/tipoprojeto/

它返回一个包含所有数据的数组,直到那时为止。

在我的其他项目中,我有一个TypeProjectController控制器,我有index()方法( AppView ),那么如何检索要在此处加载的web服务数据?

修改

负责操纵数据的

AppWs

public function All(){
    return $this->ModelTipoProjeto->paginate(5);
  }
负责显示数据的

AppView 路由::资源(' / Painel / TipoProjeto',' Painel \ TipoProjetoController');

 public function index()
    {
        $getData = `http://localhost/WebServiceApp/public/api/user/tipoprojeto/` // <~~

        return view('Painel.TipoProjeto.index');
    }

检索AppWebservice链接返回的数据

1 个答案:

答案 0 :(得分:1)

首先,为了使用外部服务,您必须向要获取数据表单的端点执行http请求。

您的终点:http://localhost/WebServiceApp/public/api/user/tipoprojeto/

安装guzzle,这是一个php curl包装器来执行http调用。 在你的root dir open命令行中,点击你的项目注入guzzle:

composer require guzzlehttp/guzzle

确保通过添加

在控制器顶部导入guzzle
use GuzzleHttp\Client;

然后转到索引方法并执行以下操作:

public function index(){

// Create a client with a base URI
$client = new GuzzleHttp\Client(['base_uri' => 'http://localhost/WebServiceApp/public/api/user/tipoprojeto/']);

// Send a request to http://localhost/WebServiceApp/public/api/user/tipoprojeto/
$response = $client->request('GET', 'test');

// $response contains the data you are trying to get, you can do whatever u want with that data now. However to get the content add the line

$contents = $response->getBody()->getContents();

dd($contents);
}

$contents包含您现在可以随意执行的数据。