Đang cố gắng tìm Google cho một plugin Rails cho phép điều chỉnh lượng yêu cầu mà một tài nguyên cụ thể được sử dụng. Django's Piston có một số mã nguồn mở cho việc này. Có một cái gì đó có sẵn ra khỏi hộp cho Rails hoặc là nó an toàn để giả định rằng nhìn vào cách Piston hiện nó và porting nó như là một plugin Rails là cái gì mà có thể được làm việc trên?Yêu cầu điều chỉnh API Ruby on Rails
Trả lời
Dưới đây là một số giá middleware mà hoàn thành những gì bạn đang sau: http://github.com/dambalah/api-throttling
và đây là một bài viết trên blog về sự phát triển của middleware rằng: http://blog.messagepub.com/2009/05/05/how-to-rack-middleware-for-api-throttling/
Có một SO thread here về lý do tại sao bạn có thể muốn đánh giá giới hạn bên ngoài ứng dụng của bạn. Thức ăn cho sự suy nghĩ, ít nhất. Tôi đang tìm giải pháp này bản thân mình, và sáng lên trong không khí cho dù tôi muốn làm điều đó trong lớp ứng dụng.
Rack::Defense là phần mềm trung gian giá để yêu cầu điều chỉnh và lọc. Nó rất dễ dàng để thiết lập, có một dấu chân nhỏ và chỉ có hai phụ thuộc (rack và redis). Bạn có thể lọc trên hầu như bất kỳ tiêu chí: ip, api thẻ, tên người dùng, vv
Dưới đây là một ví dụ làm thế nào bạn sẽ tăng tốc yêu cầu POST cho con đường /login
với tốc độ tối đa là 20 yêu cầu mỗi phút mỗi IP:
Rack::Defense.setup do |config|
config.throttle('login', 20, 60 * 1000) do |req|
req.ip if req.path == '/login' && req.post?
end
end
một ví dụ khác về cách tăng tốc yêu cầu GET cho con đường /api/*
với tốc độ tối đa là 50 yêu cầu mỗi giây mỗi mã thông báo API:
Rack::Defense.setup do |config|
config.throttle('api', 50, 1000) do |req|
req.env['HTTP_AUTHORIZATION'] if %r{^/api/} =~ req.path
end
end
Disclamer: tôi rack :: Defense gem duy trì.
- 1. Ruby on Rails: Bộ điều khiển đăng ký Devise tùy chỉnh, yêu cầu tạo hành động
- 2. Ruby on Rails Nhiều yêu cầu HTTP cùng một lúc?
- 3. Hướng dẫn API Ruby on Rails
- 4. Ruby on Rails - Biến toàn cầu?
- 5. Ruby on Rails: Phiên với ActiveResource?
- 6. Ruby vs Ruby On Rails
- 7. Ruby on Rails: unloadable
- 8. Sử dụng Photobucket api với Ruby on Rails
- 9. Tôi làm cách nào để có thể gửi yêu cầu trong Ruby on Rails?
- 10. Điều gì: điều này có nghĩa trong Ruby on Rails?
- 11. Lấy tập tin XML Yêu cầu POST để phân tích cú pháp với Ruby on Rails
- 12. Ruby on Rails 301
- 13. phương pháp toàn cầu trong Ruby on Rails mô hình
- 14. Sự kiện/Quan sát Điều khiển Ruby on Rails
- 15. Ruby on Rails + PostgreSQL: sử dụng các chuỗi tùy chỉnh
- 16. Công cụ báo cáo Ruby on Rails?
- 17. Ruby on Rails link_to Với phương thức
- 18. Intellisense cho Ruby, Ruby on Rails, Python
- 19. Tích hợp Ruby on Rails Với Wordpress
- 20. Ruby on rails application root
- 21. Yêu cầu đá quý ruby trong bộ điều khiển ray
- 22. Sử dụng Ruby on Rails
- 23. Ruby on rails và Node.js
- 24. Ruby on Rails javascript_include_tag: defaults
- 25. Xóa bản ghi khỏi bảng điều khiển - Ruby on Rails
- 26. Ruby on Rails: có điều kiện hiển thị một phần
- 27. Ruby on Rails vs Django
- 28. Monit Ruby on Rails Sidekiq
- 29. Ruby on Rails CoffeeScript không
- 30. Ruby on Rails SMS gửi