使用laravel构建调用API项目

时间:2017-01-25 20:36:55

标签: php laravel api routes

我想建立一个呼叫API laravel项目,将前端和后端分开,但是如何?
所有API都在routes/api.php中写入,但返回视图的作业仍然存在于routes/web.php中, 那是正常的吗?如果没有,我该怎么办? 代码如......

路由/ web.php:

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

show.blade.php:

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

路由/ api.php:

//return the book data that id = {id}    
Route::get('/book/{id}','BookController@show'); 

2 个答案:

答案 0 :(得分:1)

您正确使用它。

分离web和api路由的一个好处是,您可以更精细地控制应用中间件。

看一下app / Kernel.php文件:

/**
 * 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',
    ],
];

答案 1 :(得分:0)

正如@ angad-dubey提到的将它们分开的好习惯,以便网络处理前端和api路线... Api电话。

我倾向于通过在routes文件夹中添加一个admin.php来进一步分离我的,这样我的后端路由也是分开的,因此你不会有一个文件包含一长串要搜索的路由,并且如上所示,您可以将不同的中间件附加到它们而不是其他中间件,这可能会导致长期问题