限制API调用频率
使用redis-throttle
gem 'redis-throttle', git: 'git://github.com/andreareginato/redis-throttle.git'
$ bundle install
集成到Rails中,修改config/application.rb
+require 'rack/redis_throttle'
class Application < Rails::Application
+ config.middleware.use Rack::RedisThrottle::Daily, max: 3
end
redis-throttle
的redis默认连接是redis://localhost:6379/0
,也可以通过设置环境变量ENV['REDIS_RATE_LIMIT_URL']
来改变redis-throttle
的redis连接。
CORS
CORS可以允许其他域名的网页通过AJAX请求你的API。
我们可以使用rake-cors
gem来帮助我们事先CORS。
gem 'rack-cors'
修改config/application.rb
module BuildAnApiRailsDemo
class Application < Rails::Application
+ config.middleware.insert_before 0, "Rack::Cors" do
+ allow do
+ origins '*'
+ resource '*', :headers => :any, :methods => [:get, :post, :put, :patch, :delete, :options, :head]
+ end
+ end
end
end
网友评论