Lumen API + Laravel guzzlehttp响应500内部服务器错误

时间:2015-12-25 06:55:57

标签: php api rest laravel lumen

我正在开发一个Lumen + Laravel应用程序,其中Lumen是我的RESTful API,而我的Laravel是Web应用程序本身。

Laravel 5.2.0

Lumen 5.1.6

我已经在我的Laravel网络应用程序上安装了guzzlehttp来获取API请求(get,post,delete,put)。每当我执行GET请求时,从我的Lumen API检索时都会得到Server error: 'GET http://example.local/api/blog' resulted in a '500 Internal Server Error' response:。但是当我通过PostMan发出请求时,即使我直接在浏览器上输入http://example.local/api/blog,我也能成功检索数据,我得到了json响应。

Lumen GET:

public function getBlogs()
{
    return response()->json($this->sqlConnection()->table(self::TABLE_NAME)->get(), 200);
}

Laravel:

public function index(Client $client)
{
    return $client->get('http://example.local/api/blog')->getBody();
}

我确实有其他RESTful API使用不同的框架构建,并尝试测试它,如果我的Laravel Web应用程序可以连接,它能够。我发现它很奇怪,因为通过我的Lumen API连接总是返回500内部服务器错误。

1 个答案:

答案 0 :(得分:2)

经过几个小时的调试,我终于找到了答案。在.env文件中,似乎与这些行存在冲突:

DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

我在Laravel网络应用程序中删除了那些,我现在能够从我的Lumen API获得响应! (万岁!)但我想知道,有人知道为什么Laravel会获得这些环境变量吗?当我的API不是流明框架时,当这些行打开时,我没有遇到任何问题。它恰好发生在我的API是流明时。我很奇怪Laravel正在使用这些变量。

另外,为什么我的Lumen API会共享或从我的Laravel .env文件中获取价值?

Lumen .env:

API_USERNAME=lumentest
API_PASSWORD=lumenpassword

Laravel .env:

API_USERNAME=laraveltest
API_PASSWORD=laravelpassword

每当我的Laravel在我的Lumen上发出请求时,它会从我的laravel应用程序获取API_USERNAME和API_PASSWORD,而不是Lumen。