Yii2 rest api - Url manager 添加参数

Yii2 rest api - Url manager add parameters

我正在开发具有 4 个用户级别的 api。管理员、经销商、渠道和客户。所有级别的通话费率都存储在各自的 _rate 表中。

管理员可以查看所有用户级别的费率,经销商可以查看他们自己的费率和他们所有的渠道和客户,渠道本身和他们的客户等。

因此,当经销商解雇时:

api.dev/v1/call-rates

tbl_reseller_rate 返回但是我希望能够指定我想查看的费率

api.dev/v1/call-rates/channels

api.dev/v1/call-rates/customers

所以我可以做类似的事情:

if (strpos($url,'channels') !== false) 
{
    flip to channel model; 
} else if (strpos($url,'customers') !== false) 
{
    flip to customer model; 
}

另一个要求是单独查看记录,因此 url 需要像这样接受 ID 参数:

api.dev/v1/call-rates/channel/1

如有任何帮助,我们将不胜感激。提前致谢

您应该像这样配置您的 REST Url:

[
    'POST v1/call-rates/<type>' => 'your_controller/call_rates',
    'POST v1/call-rates/<type>/<id>' => 'your_controller/call_rates',
]

并在您的控制器文件中

public function call_rates($type, $id = null){
     if(!in_array($type, ['customer','channels'])) {
        // throw bad request exception here 
     }

     // Do what ever you want with $type variable.

}

对于 ID 路由,您可以更改它的方法,仅作为示例,我已将其路由到控制器中的相同方法。

REST routes

上查看更多