php - laravel 5.3 中 web 路由和 api 路由的区别

标签 php laravel 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');
        });
    }

根据此网络路线使用

These routes all receive session state, CSRF protection, etc.



api路由

These routes are typically stateless.



我的问题是
  • 什么意思stateless在 api route ?
  • Web 路由使用 session state , CSRF protection .这是否意味着 api 路由没有使用 session 状态、CSRF 保护?
  • Laravel 5.3 使用单独的 webapi路由,有什么好处吗?
  • 最佳答案

  • 什么意思stateless在 api route ?

  • 这意味着服务器不会在请求之间保存客户端“状态”。这是关于 REST What exactly is RESTful programming? 的几句话
  • Web 路由使用 session state , CSRF protection .这是否意味着 api 路由没有使用 session 状态、CSRF 保护?

  • 一切皆有可能,但不是必需的。您仍然可以使用 session 等,但这是违反 REST 原则的。
  • Laravel 5.3 使用单独的 webapi路由,有什么优势

  • 这只是为了您的方便。在 Laravel 5.2 中,您需要为 ['web'] 或 ['api'] 等路由指定中间件,但不再需要它。在 5.3 中,路由存储在单独的文件中,并且不需要指定路由中间件。

    关于php - laravel 5.3 中 web 路由和 api 路由的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40121445/

    相关文章:

    php - 更改模型中的字段/属性值 - Laravel

    Laravel 选择 * 其中 id =(选择 id )

    php - 如何从 Controller 获取两个对象结果以在 Laravel5 中查看

    laravel - 如何使用/PHP在服务器上预渲染Vue 2

    php - Mysql 大小写语法

    php - pcntl_fork 和 MySQL 连接消失了

    php - 使用 PHP 文件仅从 mySQL 数据库中导出某些列

    php - 如果第一个或最后一个字母是 utf8,则 preg_match_all 失败

    oauth-2.0 - OAuth2 授予类型密码正在撤销其他 access_token

    php - 违反完整性约束 : 1062 Duplicate field