Разница между веб-маршрутизацией и маршрутизацией API в laravel 5.3

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

В RouteServiceProvider я вижу

/**
     * Define the "web" routes for the application.
     *
     * These routes all receive session state, CSRF protection, etc.
     *
     * @return void
     */
    protected function mapWebRoutes()
    {
        Route::group([
            'middleware' => 'web',
            'namespace' => $this->namespace,
        ], function ($router) {
            require base_path('routes/web.php');
        });
    }

    /**
     * Define the "api" routes for the application.
     *
     * These routes are typically stateless.
     *
     * @return void
     */
    protected function mapApiRoutes()
    {
        Route::group([
            'middleware' => 'api',
            'namespace' => $this->namespace,
            'prefix' => 'api',
        ], function ($router) {
            require base_path('routes/api.php');
        });
    }

В соответствии с этим веб-маршрутом используется

Все эти маршруты получают состояние сеанса, защиту CSRF и т. д.

API-маршрут

Эти маршруты обычно не имеют состояния.

мой вопрос

  1. Что означает stateless в маршруте API?

  2. Веб-маршрутизация использует session state, CSRF protection. Означает ли это, что маршрутизация API не использует состояние сеанса, защиту CSRF?

  3. Laravel 5.3 использует отдельную маршрутизацию web и api, есть ли какие-то преимущества?


person Vision Coderz    schedule 19.10.2016    source источник


Ответы (1)


  1. Что означает stateless в маршруте API?

Это означает, что сервер не сохраняет состояние клиента между запросами. Вот пара слов о REST Что такое RESTful программирование?

  1. Веб-маршрутизация использует session state, CSRF protection. Означает ли это, что маршрутизация API не использует состояние сеанса, защиту CSRF?

Все возможно, но не обязательно. Вы все еще можете использовать сеансы и т. д., но это нарушение принципов REST.

  1. Laravel 5.3 использует отдельную маршрутизацию web и api, есть ли какие-то преимущества?

Это просто для вашего удобства. В Laravel 5.2 вам нужно указать промежуточное ПО для таких маршрутов, как ['web'] или ['api'], но это больше не требуется. В 5.3 маршруты хранятся в отдельных файлах и указывать промежуточное ПО маршрутов не требуется.

person aleksejjj    schedule 19.10.2016
comment
@aleksejjj.Спасибо за ответ - person Vision Coderz; 19.10.2016
comment
Не за что. Я надеюсь, что вы найдете это полезным. - person aleksejjj; 19.10.2016