【发布时间】:2020-01-30 06:09:28
【问题描述】:
我是第一次使用 Laravel 5.8 构建一个 RESTful API。
我希望我的routes/api.php 指向api.mysite.test
我的问题与Laravel 5.8 use subdomain as API endpoint beside domain.com/api非常相似
上述问题的公认答案是
至于 API 子域,我只是将它停放在主域之上。那你就不用担心它指向什么目录了。
我不是很了解,但我希望能够将mysite.test用作Web界面,呈现API。
到目前为止,我从RouteServiceProvider.php 中的mapApiRoutes 中删除了前缀并尝试连接子域
protected function mapApiRoutes()
{
Route::domain('api.'.url('/'))
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
}
我的routes/api.php:
<?php
use Illuminate\Http\Request;
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
Route::apiResource('resources', 'ResourceController');
在/etc/hosts:
192.168.10.10 mysite.test
在.env:
APP_URL=mysite.test
在config/app.php
'url' => env('APP_URL'),
当我尝试访问我的资源时
GET api.mysite.test/resources 导致Could do not get any response
这也让我很困扰
>>> url('/')
=> "http://localhost/mysite.test"
而不是我在.env 中所说的mysite.test
【问题讨论】:
-
您在 mapApiRoutes 中所做的更改是您应该做的。尝试在您的主机文件中添加 192.168.10.10 api.mysite.test,以及
-
当我为 GET api.mysite.test/resources 添加
192.168.10.10 api.mysite.test到/etc/hosts时,我收到状态为“404 未找到”的 HTML 响应 -
如果我在 mapApiRoutes 中硬编码
Route::domain('api.mysite.test')可以正常工作,但为什么url('/')会生成"http://localhost/mysite.test"?很奇怪吗?
标签: php laravel routes subdomain restful-url