Laravel 5.8 menggunakan subdomain sebagai titik akhir API di samping domain.com/api

Aug 16 2019

Saya memiliki server produksi dengan beberapa titik akhir API. Saya hanya ingin membuat sistem yang lebih cantik yang memindahkan semua panggilan API dari domain.com/api/v1/xxxxxxke subdomain sepertiapi.domain.com/v1/xxxxxx

Sekarang saya baru saja membuat subdomain di cPanel: api.domain.com lalu arahkan subdomain itu ke public_htmlfolder laravel (saya melakukan trik untuk public -> public_htmlmengganti nama 😁)

Kemudian tambahkan domain pemetaan rute di api.php:

//SubDomain Mapping
Route::group(['domain' => 'api.bachecubano.com'], function () {
    Route::group(['prefix' => 'v1'], function () {
        Route::get('categories', 'Api\AdController@get_categories')->name('api_get_categories');
    });
});

Dan coba api.domain.com/v1/xxxtapi beri saya kesalahan. Jadi solusi yang berhasil adalahapi.domain.com/api/v1/xxx

Tapi itu terlalu jelek, saya perlu menghapus /api/parameter url kedua .

Bagaimana saya melakukan ini?

PS: Masukkan pemetaan subdomain ke public_html/api, tapi itu jelas macet dengan kesalahan 500.

Pikiran saya mengatakan kepada saya bahwa solusinya mungkin dalam file .htaccess, tetapi In tidak tahu banyak tentang itu.

Terima kasih

Jawaban

4 matticustard Aug 17 2019 at 04:50

Anda dapat menghapus apiawalan default dengan menghapus prefix('api')dari mapApiRoutes()metode di RouteServiceProvider Anda, seperti di bawah ini:

App \ Providers \ RouteServiceProvider.php

protected function mapApiRoutes()
{
    // prefix('api) has been deleted

    Route::middleware('api')
         ->namespace($this->namespace)
         ->group(base_path('routes/api.php'));
}

Sedangkan untuk subdomain api, saya hanya akan memarkirnya di atas domain utama. Maka Anda tidak perlu khawatir tentang direktori mana yang dituju.