web-dev-qa-db-ja.com

apiまたはweb Laravel 5.3

ばかげているかもしれない質問がありますので、ご容赦ください。

いつroutes/api.phpファイルを使用すればよいかわかりません。

Ajaxを使用してデータテーブルからレコードを削除する場合、別のコントローラーを作成してルートをapi.phpに配置する必要がありますか、それとも他のすべてに使用するのと同じコントローラーを使用してルートをweb.phpに配置できますか?

18
Sigal Zahavi

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サイトへのアクセスも検討してください。

19
bernadd

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"

6
Amirhossein72

通常、web.phpはCMSなどの単純なWebアプリケーションに使用され、api.phpはモバイルアプリケーションやvuejsなどのフロントエンドフレームワークに使用されます。以下は、両者の詳細な違いです。

Normally, web.php is used for simple web applications like CMS while api.php is used for mobile applications and front-end frameworks like vuejs

ソース: DecodeWeb.in

4
Dinesh Suthar