使用 laravel 构建调用 API 项目



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

路线/网络.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'); 

您正确使用它。

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

看看app/Kernel.php文件:

/**
 * The application's route middleware groups.
 *
 * @var array
 */
protected $middlewareGroups = [
    'web' => [
        AppHttpMiddlewareEncryptCookies::class,
        IlluminateCookieMiddlewareAddQueuedCookiesToResponse::class,
        IlluminateSessionMiddlewareStartSession::class,
        IlluminateViewMiddlewareShareErrorsFromSession::class,
        AppHttpMiddlewareVerifyCsrfToken::class,
        IlluminateRoutingMiddlewareSubstituteBindings::class,
        LaravelPassportHttpMiddlewareCreateFreshApiToken::class,
    ],
    'api' => [
        'throttle:60,1',
        'bindings',
    ],
];

正如@angad-dubey提到的那样,将它们分开的良好做法是,以便Web处理前端和API路由...接口调用。

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

最新更新