2017-01-25 1 views
0

Ich würde gerne ein Call API Laravel-Projekt erstellen, trennen Sie die Front-End und Back-End, aber wie?
Alle API schreiben in der routes/api.php, aber der Job, der eine Ansicht noch in routes/web.php, Live zurückgeben ist das normal? wenn nicht, was soll ich tun?
Der Code wie ...Baue ein Call-API-Projekt mit Laravel

Routen/web.php:

Route::get('/book/{id}',function(){ return view('book.show')->with('id',$id) ;}); 

show.blade.php:

... 
$(function(){ 
    $.ajax{ 
     url: 'api/book/{{ $id }}', 
     .... 
    } 
}); 
... 

Routen/api.php:

//return the book data that id = {id}  
Route::get('/book/{id}','[email protected]'); 
+1

Ich würde vorschlagen, dass ** Lumen ** verwenden, da Sie ** API ** bauen . Sehen Sie sich [this] an (https://lumen.laravel.com/) –

+0

Sie wollen sowohl ein Frontend als auch ein Backend. Lumen ist eine schlechte Lösung für diese Situation. – Samsquanch

+0

Wenn Sie eine API erstellen, wird davon ausgegangen, dass Sie ein Frontend-Framework für fronted verwenden. Also nicht das ganze Laravel. – devk

Antwort

1

Sie verwenden es richtig.

Einer der Vorteile der Trennung von Web- und API-Routen besteht in der präziseren Kontrolle der Anwendung von Middlewares.

Werfen Sie einen Blick auf app/Kernel.php Datei:

/** 
* The application's route middleware groups. 
* 
* @var array 
*/ 
protected $middlewareGroups = [ 
    'web' => [ 
     \App\Http\Middleware\EncryptCookies::class, 
     \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
     \Illuminate\Session\Middleware\StartSession::class, 
     \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
     \App\Http\Middleware\VerifyCsrfToken::class, 
     \Illuminate\Routing\Middleware\SubstituteBindings::class, 
     \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class, 
    ], 

    'api' => [ 
     'throttle:60,1', 
     'bindings', 
    ], 
]; 
0

Als @ angad-dubey seine gute Praxis erwähnt, sie zu trennen, so dass die Web-Angebote mit dem vorderen Ende und die api Wege. .. Api ruft an.

Ich neige dazu, meins weiter zu trennen, indem ich eine admin.php innerhalb des Routes-Ordners hinzufüge, so dass meine Backend-Routen ebenfalls getrennt sind. Somit hast du keine Datei mit einer langen Liste von zu durchsuchenden Routen wie oben gezeigt, können Sie verschiedene Middleware an sie und nicht an die anderen anhängen, was langfristig zu Problemen führen könnte