路由

    在实践中,你通常要用美观的 URL 并采取有优势的 HTTP 动词。
    例如,请求 POST /users 意味着访问 user/create 动作。
    这可以很容易地通过配置 urlManager 应用程序组件来完成
    如下所示:

    相比于 URL 管理的 Web 应用程序,上述主要的新东西是通过 RESTful API
    请求 [[yii\rest\UrlRule]] 。这个特殊的 URL 规则类将会
    建立一整套子 URL 规则来支持路由和 URL 创建的指定的控制器。
    例如, 上面的代码中是大致按照下面的规则:

    1. [
    2. 'PUT,PATCH users/<id>' => 'user/update',
    3. 'DELETE users/<id>' => 'user/delete',
    4. 'GET,HEAD users/<id>' => 'user/view',
    5. 'POST users' => 'user/create',
    6. 'GET,HEAD users' => 'user/index',
    7. 'users/<id>' => 'user/options',
    8. 'users' => 'user/options',
    9. ]
    • GET /users: 逐页列出所有用户;
    • POST /users: 创建一个新用户;
    • GET /users/123: 返回用户为 123 的详细信息;
    • HEAD /users/123: 显示用户 123 的概述信息;
    • PATCH /users/123 and : 更新用户 123;
    • DELETE /users/123: 删除用户 123;
    • OPTIONS /users: 显示关于末端 /users 支持的动词;
    • OPTIONS /users/123: 显示有关末端 /users/123 支持的动词。

    您可以通过配置 onlyexcept 选项来明确列出哪些行为支持,
    哪些行为禁用。例如,

    您也可以通过配置 patternsextraPatterns 重新定义现有的模式或添加此规则支持的新模式。
    例如,通过末端 GET /users/search 可以支持新行为 search, 按照如下配置 extraPatterns 选项,

    1. [
    2. 'class' => 'yii\rest\UrlRule',
    3. 'controller' => 'user',
    4. 'extraPatterns' => [
    5. ],

    如果自动复数化不能满足你的需求,你也可以配置
    [[yii\rest\UrlRule::controller]] 属性来明确指定如何将端点URL中使用的名称映射到
    控制器ID。例如,以下代码将名称 u 映射到控制器ID user

    1. [
    2. 'class' => 'yii\rest\UrlRule',
    3. 'controller' => ['user'],
    4. 'ruleConfig' => [
    5. 'class' => 'yii\web\UrlRule',
    6. 'defaults' => [
    7. 'expand' => 'profile',
    8. ]
    9. ],