需要帮助关于Laravel Api

时间:2017-03-14 21:33:26

标签: php laravel api laravel-5.3 laravel-5.4

我有两个Web应用程序在不同的域中工作,第一个是像这样的Laravel Web应用程序

domaine1.com 

和另一个使用laravel构建的Web应用程序

domaine2.com

我在第一个应用程序上有这样的仪表板(domaine1.com/dashboard), 我想从这个仪表板添加例如A书到Web应用程序2,它有自己的数据库和表...... 请有人告诉我我该怎么办? 我在laravel上有点新手,我想我应该使用类似API的东西?还是其他什么?

2 个答案:

答案 0 :(得分:0)

在Application 2 routes.php中创建路线以获取图书 例如

Route::get('domaine2.com/books', 'BookController@getBooks');

在BookController中:

 public function getBooks()
    {
        $books = Books::all();    //I assume that Books is your model
        return $books
    }

现在你所要做的就是在domaine1.com应用程序的控制器中调用它来获取你的书

$books = file_get_contents('http://domaine2.com/books');

首先尝试一下,确保它有效,然后尝试访问http://domaine2.com/books,看看你的书是否有json。

答案 1 :(得分:0)

是。你应该使用API​​。虽然它不会那么容易,因为你想创建跨域请求。

如果您要传递的数据未被分类,您可以创建一个公共API处理程序,这意味着每个人都可以访问它。例如,这可以是从数据库返回某些对象的get请求。假设您在domain1.com中创建了一条路线:

GET domain1.com/api/books返回json/data

然后,如果有人访问http://domain1.com/api/books,他会看到此回复格式化为json。您可以使用CURL在domain2.com应用中使用它,也可以使用带有axios的vue.js内置它。

如果要提供的数据是分类的,或者您想要发出GET以外的请求(例如POST),则必须阅读有关应用程序授权的信息。举一个简单的方法:你必须向你的domain1.com应用程序显示允许访问受限数据的人才能这样做。

顺便提一句,提及其他回复:您应该在路线中使用api.php,而不是web.php。请记住,file_get_contents明显慢于CURL。