Я создал API REST в CodeIgniter, используя это: https://github.com/chriskacerguis/codeigniter-restserver
и пытается установить ограничения для каждого метода, как указано здесь:
Проблема ограничения лимита API CodeIgniter RESTful
но это просто не работает.
Я включил ограничения в файле rest.php, но все же он просто не учитывает лимит.
Мой код:
/* |-------------------------------------------------------------------------- | REST Enable Limits |-------------------------------------------------------------------------- | | When set to TRUE, the REST API will count the number of uses of each method | by an API key each hour. This is a general rule that can be overridden in the | $this->method array in each controller | | Default table schema: | CREATE TABLE `limits` ( | `id` INT(11) NOT NULL AUTO_INCREMENT, | `uri` VARCHAR(255) NOT NULL, | `count` INT(10) NOT NULL, | `hour_started` INT(11) NOT NULL, | `api_key` VARCHAR(40) NOT NULL, | PRIMARY KEY (`id`) | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | | To specify the limits within the controller's __construct() method, add per-method | limits with: | | $this->method['METHOD_NAME']['limit'] = [NUM_REQUESTS_PER_HOUR]; | | See application/controllers/api/example.php for examples */ $config['rest_enable_limits'] = TRUE; /* |-------------------------------------------------------------------------- | REST API Limits Table Name |-------------------------------------------------------------------------- | | If not using the default table schema in 'rest_enable_limits', specify the | table name to match eg my_limits | */ $config['rest_limits_table'] = 'rest_api_limits';
и вот массив методов в моем контроллере:
protected $methods = array( 'properties_get' => array('level' => 20), 'images_get' => array('level' => 20), 'prices_get' => array('level' => 20), 'availability_get' => array('level' => 20), 'portals_get' => array('level' => 20, 'limit' => 10), 'properties_post' => array('level' => 20, 'limit' => 10), 'images_post' => array('level' => 20, 'limit' => 10), 'availability_post' => array('level' => 20, 'limit' => 10), 'prices_post' => array('level' => 20, 'limit' => 10), 'enquiries_post' => array('level' => 20, 'limit' => 100), 'properties_put' => array('level' => 20, 'limit' => 10), 'enquiries_get' => array('level' => 20, 'limit' => 10), 'bookings_get' => array('level' => 20, 'limit' => 10), 'ferienhausmiete_get' => array('level' => 10, 'limit' => 20), 'homeaway_get' => array('level' => 10, 'limit' => 600), );
Какие-либо предложения? Заранее спасибо!!!