Provare a Google in giro per un plug-in Rails che consenta di limitare la quantità di richieste che una particolare risorsa viene consumata. Django's ha un codice open source per questo. C'è qualcosa di disponibile pronto per Rails o è lecito ritenere che guardare a come Piston lo fa e portarlo come plugin Rails è qualcosa su cui si può lavorare?Limitazione delle richieste a un'API di Ruby on Rails
risposta
Ecco alcuni middleware cremagliera che compie quello che stai dopo: http://github.com/dambalah/api-throttling
ed ecco un post sul blog circa lo sviluppo di quel middleware: http://blog.messagepub.com/2009/05/05/how-to-rack-middleware-for-api-throttling/
C'è un SO thread here sul perché si potrebbe desiderare di votare limite fuori dalla tua applicazione. Spunti di riflessione, almeno. Sto cercando questa soluzione da solo, e sono nell'aria se voglio farlo nel livello dell'applicazione.
Rack::Defense è un middleware rack per la limitazione e il filtraggio delle richieste. È facile da configurare, ha un ingombro ridotto e ha solo due dipendenze (rack e redis). È possibile filtrare praticamente su qualsiasi criterio: ip, api di token, nome utente ecc
Ecco un esempio di come si potrebbe strozzare richieste POST di percorso /login
con una velocità massima di 20 richiesta per minuto per IP:
Rack::Defense.setup do |config|
config.throttle('login', 20, 60 * 1000) do |req|
req.ip if req.path == '/login' && req.post?
end
end
un altro esempio su come strozzare richieste GET di percorso /api/*
con un tasso massimo del 50 richiesta per secondo a gettone 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: io sono il rack :: Difesa gem manutentore.
- 1. Curl on Ruby on Rails
- 2. Ruby on Rails: menu a discesa
- 3. Docsplit Ruby on Rails
- 4. Ruby on rails 4 problema di registrazione
- 5. downgrade di Ruby on Rails
- 6. Cos'è l'ORM correlato a Ruby on Rails?
- 7. Ruby on Rails, rilevamento Javascript
- 8. Vantaggi e svantaggi delle relazioni polimorfiche di Ruby on Rails
- 9. Ruby on rails problems on heroku
- 10. Ruby on Rails con pattern di deposito?
- 11. Node.js vs Ruby on Rails
- 12. SSL con Ruby on Rails
- 13. Ruby on Rails redirect_to arguments
- 14. Ruby on Rails Rake Error
- 15. Ruby on Rails javascript_include_tag: default
- 16. Ruby on rails tasks scheduling
- 17. Ruby on Rails versus Python
- 18. Ruby on Rails - Global Variable?
- 19. Ruby on Rails link_to un'immagine
- 20. Ruby on Rails 301 reindirizzamento
- 21. Ruby on Rails colonna decimale
- 22. Busting Ruby on Rails Myths
- 23. Esercitazione su Ruby on Rails
- 24. Ruby on Rails Interpolazione I18n
- 25. semplice Ruby on Rails Tutorial
- 26. Associazione polimorfica Ruby on Rails
- 27. Ruby on Rails. Percorsi Unicode
- 28. Monit Ruby on Rails Sidekiq
- 29. Intellisense per Ruby, Ruby on Rails, Python
- 30. Minitest Issues Ruby on Rails