Próba znalezienia wtyczki Railsowej dla przeglądarki Google, która pozwoli zmniejszyć liczbę żądań danego zasobu. Django ma Piston ma trochę kodu open source. Czy jest coś, co jest dostępne po wyjęciu z pudełka dla Railsów lub czy można bezpiecznie założyć, że patrząc na to, jak Piston to robi i przenosić go jako wtyczkę Railsa, można nad nim pracować?Ograniczanie żądań do Ruby on Rails API
Odpowiedz
Oto niektóre rack middleware, który realizuje to, czego szukasz: http://github.com/dambalah/api-throttling
i oto blogu o rozwoju tego oprogramowania pośredniczącego: http://blog.messagepub.com/2009/05/05/how-to-rack-middleware-for-api-throttling/
Jest SO thread here o tym, dlaczego warto, aby ocenić granicę poza Twoją aplikacją. Przynajmniej do myślenia. Sam szukam tego rozwiązania i jestem w powietrzu, czy chcę to zrobić w warstwie aplikacji.
Rack::Defense to oprogramowanie pośredniczące typu rack do dławienia i filtrowania żądań. Jest łatwy w konfiguracji, ma mały rozmiar i ma tylko dwie zależności (rack i redis). Można filtrować praktycznie żadnych kryteriów: IP, API żeton, nazwę użytkownika itd
Oto przykład jak można zdławić żądania POST na ścieżce /login
z maksymalną szybkością 20 zamówienie na minutę na IP:
Rack::Defense.setup do |config|
config.throttle('login', 20, 60 * 1000) do |req|
req.ip if req.path == '/login' && req.post?
end
end
Innym przykładem, w jaki sposób udusić żądań GET na ścieżce /api/*
z maksymalną prędkością 50 zamówienie na sekundę na API tokena:
Rack::Defense.setup do |config|
config.throttle('api', 50, 1000) do |req|
req.env['HTTP_AUTHORIZATION'] if %r{^/api/} =~ req.path
end
end
Disclamer: Jestem Rack :: obrony gem opiekunowie.
- 1. Funkcja API Sendgrid dla Ruby on Rails
- 2. Samouczek interfejsu API Ruby on Rails
- 3. Ruby on Rails Wiele żądań HTTP w tym samym czasie?
- 4. Ruby on Rails on IIS?
- 5. Konwersja projektu Ruby on Rails do projektu JRuby on Rails
- 6. Ruby vs. Ruby On Rails
- 7. Docsplit Ruby on Rails
- 8. Przełącznik Ruby on Rails
- 9. Pasek do jednorazowej płatności. - Ruby on Rails
- 10. Zaproszenie do Facebooka z Ruby on Rails
- 11. Ruby on Rails I18n interpolation
- 12. Ruby on rails i Node.js
- 13. Ruby on Rails kontra Python
- 14. Ruby on Rails: wybierz formularz
- 15. Narzędzia raportowania Ruby on Rails?
- 16. Ruby on Rails 301 przekierowanie
- 17. Ruby on Rails: Wyszukiwanie zaawansowane
- 18. Ruby on Rails javascript_include_tag: domyślnie
- 19. Monit Ruby on Rails Sidekiq
- 20. Ruby on Rails before_filter vs initialized ruby
- 21. Ruby on Rails. Unicode routes
- 22. Antypatterns z Ruby on Rails
- 23. Ruby on Rails wysyłania SMS
- 24. Stowarzyszenie polimorficzne Ruby on Rails
- 25. Ruby on Rails coffeescript braku
- 26. Ruby on Rails link_to obrazu
- 27. Zwijanie na Ruby on Rails
- 28. Pakiety Ruby on Rails downgrade
- 29. Ruby on Rails vs. Django
- 30. Ruby on Rails: menu rozwijane