Laravel 前端网站与 Laravel API 之间的通信,均在 Valet 下
Communication between a Laravel front website a Laravel API, both under Valet
我安装了两个 Laravel,一个用作 front 网站,另一个用作 API,都停车 代客。我的问题是好像不能一起交流,可能是Valet的原因吧。所以,我尝试了下面的小测试,由于某种原因,它不起作用。
- 步骤 1
我在 API 网站的 routes/api.php
中有此代码:
Route::get('hello-api', function () {
return 'Hello Api!';
});
在我的浏览器中打开 URL http://api.test/hello-api
时,我得到了预期的 "Hello Api!"。
- 步骤 2
然后,当我在 front 网站的 routes/web.php
中有以下代码时:
Route::get('/hello-front', function () {
return 'foo';
});
在我的浏览器中打开 URL http://front.test/hello-front
时,我得到了预期的 "foo"。
- 步骤 3
但是,如果我将 front 网站的 routes/web.php
中的代码替换为以下代码:
use GuzzleHttp\Client;
Route::get('/hello-api', function () {
// return 'hello';
$client = new Client();
$response = $client->request('GET', 'http://api.test/hello-api');
$statusCode = $response->getStatusCode();
$body = $response->getBody()->getContents();
return $statusCode;
return $body;
});
然后,我收到以下错误消息,而不是预期的 "Hello Api!":
{"status":"error","errors":["cURL error 6: Could not resolve: api.test (Domain name not found) (see https:\/\/curl.haxx.se\/libcurl\/c\/libcurl-errors.html)"]}
我的代码或 Valet 有什么问题?
我最终通过将此添加到 /etc/hosts
来修复它:
127.0.0.1 api.test
但我很想看看是否可以在 Valet 中修复它。
我安装了两个 Laravel,一个用作 front 网站,另一个用作 API,都停车 代客。我的问题是好像不能一起交流,可能是Valet的原因吧。所以,我尝试了下面的小测试,由于某种原因,它不起作用。
- 步骤 1
我在 API 网站的 routes/api.php
中有此代码:
Route::get('hello-api', function () {
return 'Hello Api!';
});
在我的浏览器中打开 URL http://api.test/hello-api
时,我得到了预期的 "Hello Api!"。
- 步骤 2
然后,当我在 front 网站的 routes/web.php
中有以下代码时:
Route::get('/hello-front', function () {
return 'foo';
});
在我的浏览器中打开 URL http://front.test/hello-front
时,我得到了预期的 "foo"。
- 步骤 3
但是,如果我将 front 网站的 routes/web.php
中的代码替换为以下代码:
use GuzzleHttp\Client;
Route::get('/hello-api', function () {
// return 'hello';
$client = new Client();
$response = $client->request('GET', 'http://api.test/hello-api');
$statusCode = $response->getStatusCode();
$body = $response->getBody()->getContents();
return $statusCode;
return $body;
});
然后,我收到以下错误消息,而不是预期的 "Hello Api!":
{"status":"error","errors":["cURL error 6: Could not resolve: api.test (Domain name not found) (see https:\/\/curl.haxx.se\/libcurl\/c\/libcurl-errors.html)"]}
我的代码或 Valet 有什么问题?
我最终通过将此添加到 /etc/hosts
来修复它:
127.0.0.1 api.test
但我很想看看是否可以在 Valet 中修复它。