【问题标题】:Diff between web routing and api routing in laravel 5.3laravel 5.3 中 web 路由和 api 路由的区别
【发布时间】:2017-02-28 12:09:37
【问题描述】:

我阅读了很多关于 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. api路由中stateless是什么意思?

  2. Web 路由使用session state、CSRF protection。是不是说api路由没有使用会话状态、CSRF保护?

  3. Laravel 5.3 使用单独的web 和api 路由,有什么优势吗?

【问题讨论】:

    标签: php laravel laravel-5.3


    【解决方案1】:
    1. api 路由中的stateless 是什么意思?

    这意味着服务器不会在请求之间保存客户端“状态”。这是关于 REST 的几句话What exactly is RESTful programming?

    1. Web 路由使用session state、CSRF protection。是不是说api路由没有使用会话状态、CSRF保护?

    一切皆有可能,但不是必须的。您仍然可以使用会话等,但这是违反 REST 原则的。

    1. Laravel 5.3 使用单独的web 和api 路由,有什么好处

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

    【讨论】:

    • @aleksejjj.谢谢你的回答
    • 这是我的荣幸。我希望你觉得它有用。
    猜你喜欢
    • 2017-01-24
    • 2016-12-06
    • 2017-05-25
    • 2017-08-10
    • 2020-09-09
    • 2015-05-28
    • 1970-01-01
    • 2018-01-21
    相关资源
    最近更新 更多