ばかげているかもしれない質問がありますので、ご容赦ください。
いつroutes/api.phpファイルを使用すればよいかわかりません。
Ajaxを使用してデータテーブルからレコードを削除する場合、別のコントローラーを作成してルートをapi.phpに配置する必要がありますか、それとも他のすべてに使用するのと同じコントローラーを使用してルートをweb.phpに配置できますか?
Laravelのドキュメントを読んだり、Laravelにどの程度精通しているのかはわかりませんが、Laravel 5.3には、WebルートとAPIルートがあります。別のファイル。
Apiルートは、apiの登録(つまり、rest apiサービスを構築している場合)にのみ使用し、そこに配置されたすべてのルートには、デフォルトで/ apiがプレフィックスとして付けられます。つまり、apiファイル内にルート/ userを定義すると、自動的に/ apiが前に付けられるため、エンドポイントはwww.yourapplication.com/api/userになります。
REST APIサービスを構築していない場合や、同様のものがこのファイルをまったく使用しない場合は、Webファイルを使用してすべてのアプリケーションルートを定義します。
Laravel 5.3 WebおよびAPIルートを含む)の新しい変更についての素敵な紹介があるので、Laracast Webサイトへのアクセスも検討してください。
Api.phpに配置されたすべてのルートには接頭辞として/ apiが付けられます。これはbernaddでも言及されていますが、他の違いがあります:このリンク( https://mattstauffer.co/blog/routing-changes-in -laravel-5- )laravelコードでapiとwebの違いを見つけることができます:
app\Providers\RouteServiceProvider:
public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
//
}
protected function mapApiRoutes()
{
Route::group([
'middleware' => ['api', 'auth:api'],
'namespace' => $this->namespace,
'prefix' => 'api',
], function ($router) {
require base_path('routes/api.php');
});
}
protected function mapWebRoutes()
{
Route::group([
'namespace' => $this->namespace, 'middleware' => 'web',
], function ($router) {
require base_path('routes/web.php');
});
}
app\Http\Kernel.phpの "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,
],
'api' => [
'throttle:60,1',
'bindings',
],
And:in config\auth.php:このファイルのコメントで、デフォルトの "auth"( 'guard' => 'の違いを明確に見つけることができますweb ')vs "auth:api"
通常、web.phpはCMSなどの単純なWebアプリケーションに使用され、api.phpはモバイルアプリケーションやvuejsなどのフロントエンドフレームワークに使用されます。以下は、両者の詳細な違いです。
ソース: DecodeWeb.in