Связь между Laravel фронт-сайтом и Laravel API, оба под Valet - PullRequest
0 голосов
/ 24 марта 2020

У меня есть две локали установки Laravel, одна из которых используется как front веб-сайт, а другая как API , обе припаркованы с Валет . Моя проблема в том, что он не может общаться вместе, может быть, из-за Валета. Итак, я попробовал маленький тест ниже, который по какой-то причине не работает.

  • Шаг 1

У меня есть этот код в routes/api.php веб-сайта API :

Route::get('hello-api', function () {
    return 'Hello Api!';
});

При открытии URL http://api.test/hello-api в моем браузере я получаю сообщение "Hello Api!" как и ожидалось.

  • Шаг 2

Затем, когда у меня есть код ниже в routes/web.php фронта website:

Route::get('/hello-front', function () {
     return 'foo';
});

При открытии URL http://front.test/hello-front в моем браузере я получаю "foo", как и ожидалось.

  • Шаг 3

Однако, если я заменю код в routes/web.php сайта front на этот:

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?

1 Ответ

0 голосов
/ 24 марта 2020

Я наконец исправил это, добавив это к /etc/hosts:

127.0.0.1       api.test

Но мне было бы интересно узнать, можно ли это исправить в Valet .

...