该规则支持下面的 API 末端:

  • GET /users 逐页列出所有用户
  • GET /users/123: 返回用户 123 的详细信息
  • GET /users?page=2 获取第二页的数据
  • GET /users?fields=id,username,created_at 获取指定字段 例如:id,username,created_at
  • GET /users?sort=id,-username 根据指定字段排序 例如:id字段正序排列,username字段倒序排列
  • HEAD /users: 显示用户列表的概要信息
  • POST /users: 创建一个新用户
  • HEAD /users/123: 显示用户 123 的概述信息
  • PATCH /users/123 and PUT /users/123: 更新用户123
  • DELETE /users/123: 删除用户123
  • OPTIONS /users: 显示关于末端 /users 支持的动词
  • OPTIONS /users/123: 显示有关末端 /users/123 支持的动词

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

[
    'class' => 'yii\rest\UrlRule',
    'controller' => 'user',
    'except' => ['delete', 'create', 'update'],
],

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

[
    'class' => 'yii\rest\UrlRule',
    'controller' => 'user',
    'extraPatterns' => [
        'GET search' => 'search',
    ],
]

user 以复数形式出现在 users 末端,可以通过pluralize 为 false 来禁用此行为,例如

[
    'class' => 'yii\rest\UrlRule',
    'pluralize' => false,
    'controller' => 'user', 
    'patterns' => [
         'GET,HEAD' => 'index',
     ]
],

也可以使用指定的名称映射到 控制器ID

 [
     'class' => 'yii\rest\UrlRule',
     'controller' => ['u' => 'user'],
 ]