CodeIgniter RESTful API速率限制问题

时间:2012-11-06 13:27:31

标签: php api codeigniter

我正在使用Phil Sturgeon编写的以下代码:https://github.com/philsturgeon/codeigniter-restserver

在我的文档中,我无法看到如何在控制器侧设置限制选项。

RESTController控制器文件有一些引用,例如。

第654行:https://github.com/philsturgeon/codeigniter-restserver/blob/master/application/libraries/REST_Controller.php

显示受保护的功能,另外还有:

 // How many times can you get to this method an hour?
 $limit = $this->methods[$controller_method]['limit'];

来自rest.php配置:

  

/ *   | ------------------------------------------------- ------------------------- | REST启用限制   | ------------------------------------------------- ------------------------- | |设置为true时,REST_Controller将计算使用次数   每种方法|每小时一个API密钥。这是一般规则   在|中被覆盖$ this->每个控制器中的方法数组。 |

有人可以帮我吗?目前拉我的头发: - )

我目前的控制器方法之一:

function listservices_get()
{
    $organisation_id = $this->get('id');
    $organisations = $this->api_buyus_model->list_services($organisation_id);

    if($organisations)
    {
            $this->response($organisations, 200);
    }
    else
    {
            $this->response(array('error' => '1', 'errorDesc' => 'Buy us services list could not be retrieved.'), 400);
    }
}

2 个答案:

答案 0 :(得分:3)

修正:

    protected $methods = array(
            'index_put' => array('level' => 10, 'limit' => 10),
            'index_delete' => array('level' => 10),
            'level_post' => array('level' => 10),
            'regenerate_post' => array('level' => 10),
    );

答案 1 :(得分:0)

你有没有试过像

这样的东西

$this->methods['listservices_get']['limit'] =10位于函数顶部?

如果你有一个调试器,可能值得在那里设置一个断点来检查设置的限制。然后你可以在调用响应之前覆盖它。