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


Lumen API + Laravel guzzlehttp response 500 Internal Server Error

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

Laravel 5.2.0

流明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响应。

流明获取:

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内部服务器错误。

经过数小时的调试,我终于找到了答案。在.env文件上,似乎与以下行有冲突:

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

我在我的Laravel网络应用程序上删除了这些,现在我可以从我的Lumen API获得响应了!!!(万岁!)但我想知道,有人知道Laravel为什么会得到这些环境变量吗?当我的API不是Lumen框架时,当这些行打开时,我不会遇到任何问题。当我的API是Lumen时,就会发生这种情况。我觉得Laravel使用这些变量很奇怪。

此外,为什么我的Lumen API会从我的Laravel .env文件中分享或获得价值?

流明环境:

API_USERNAME=lumentest
API_PASSWORD=lumenpassword

Laravel.env:

API_USERNAME=laraveltest
API_PASSWORD=laravelpassword

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