Api или web Laravel 5.3

У меня есть вопрос, который может звучать глупо для вас, поэтому, пожалуйста, простите меня.

Я не уверен, когда я использую файл route/api.php.

Если я хочу удалить запись из datatable с помощью ajax, мне нужно создать отдельный контроллер и поместить маршрут в api.php, или я могу использовать тот же контроллер, который я использую для всего остального, и поместить маршрут в сеть .php?

Ответ 1

Я не уверен, читали ли вы документацию по Laravel или насколько хорошо вы знакомы с Laravel, но в Laravel 5.3 у вас есть веб-маршруты и API-маршруты в отдельных файлах.

Вы используете маршруты API только для регистрации вашего API (то есть, если вы создаете службу API остальных), и все маршруты, размещенные там, будут иметь префикс по умолчанию с /api. То есть, если вы определяете маршрут/пользователя в файле api, он будет автоматически иметь префикс /api, поэтому конечной точкой будет www.yourapplication.com/api/user.

Если вы не создаете службу API остальных или что-то подобное, вообще не используйте этот файл, используйте веб файл для определения всех маршрутов вашего приложения.

Также рассмотрите возможность посещения веб-сайта Laracast, так как они имеют хорошее представление о новых изменениях в Laravel 5.3, включая маршруты web и api. Надеюсь, это поможет вам.

Ответ 2

Все маршруты, размещенные в api.php, будут иметь префикс /api, о котором также упоминалось bernadd, есть и другие отличия: в этой ссылке (https://mattstauffer.co/blog/routing-changes-in-laravel-5-3) вы можете найти разницу между api и web в коде laravel:

в приложении \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');
        });
    }

в приложении \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',
        ],

И  в config\auth.php: В этом файле комментариев вы можете четко узнать разницу между по умолчанию "auth" ( "guard" = > "web" ) и "auth: api"

Ответ 3

Обычно web.php используется для простых веб-приложений, таких как CMS, в то время как 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