【问题标题】:How to route my API endpoints in Laravel as api.domain.com instead of domain.com/api如何在 Laravel 中将我的 API 端点路由为 api.domain.com 而不是 domain.com/api
【发布时间】: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


【解决方案1】:

我把自己整理好了。 所以首先正如Mauro Baptista 在 cmets 中指出的那样,所有子域都必须添加到/etc/hosts。就我而言

192.168.10.10   mysite.test
192.168.10.10   api.mysite.test

事实证明他们共享相同的IP地址没有问题。

第二个问题是我在RouteServiceProvider.php 中生成的URL Route::domain('api.'.url('/')) 没有生成有效的 URL。 相反,正确的语法是Route::domain('api.'.parse_url(config('app.url'), PHP_URL_HOST)) 感谢Adding a Subdomain to Your Laravel Application

【讨论】:

  • Route::domain(env('app_domain')) does 如果您添加“app_domain”并在 .env 下分配 api.mysite.test 也可以使用
猜你喜欢
  • 2018-07-09
  • 2019-12-23
  • 2021-07-06
  • 2011-05-02
  • 1970-01-01
  • 1970-01-01
  • 2022-06-30
  • 2021-12-26
  • 2019-07-03
相关资源
最近更新 更多