Rack è una gemma Ruby nata cercando di dare una risposta al sentito bisogno di standardizzazione nelle comunicazioni tra i vari middleware che vogliono concorrere alla gestione della richieste e alla produzione delle risposte di una chiamata HTTP.
La strategia che implementa è incredibilmente semplice ed efficace: Rack consente di concatenare in modo sequenziale i vari middleware tra loro.
Ogni richiesta in arrivo dal webserver viene quindi strutturata all'interno di un oggetto specifico e passata al primo anello della catena il quale ha in carico la responsabilità di passarlo a sua volta al secondo anello, e così via.
Prima di ogni passaggio tale oggetto può essere chiaramente arricchito di informazioni prodotte dal middleware. Una volta completato il percorso fino alla fine della catena l'algoritmo inverte direzione e ripercorre tutti gli anelli in senso inverso dando la possibilità ad ognuno di essi di poter incidere a proprio piacimento nella creazione della risposta. Al termine di questo ulteriore passaggio la risposta viene passata al server per poi essere inviata al browser.
La comodità di questo semplice meccanismo è evidente: qualunque libreria che aspira a middleware, se scritta secondo alcune semplici linee guida, può divenire rack-enabled e quindi essere inserita all'interno di queste catene beneficiando della combinazione con gli altri anelli.
Questo articolo vuole offrire sia una panoramica sulla tecnica di creazione di un middleware rack-enabled sia un buono spunto su come creare ed utilizzare una catena di middleware utilizzando Rack; entrambi i temi verranno esposti nel seguito dell'articolo.
Guida ActiveSupportUna panoramica sulle funzionalità più importanti di ActiveSupport:... |
Guida Ruby On Rails 2Scoprire le novità di Ruby on Rails 2, memorizzare i dati con... |
Guida Ruby e il WebUn percorso alla scoperta delle potenzialità offerte da Ruby nella... |
Ogni mercoledì, direttamente nella tua e-mail: articoli, guide e tutorial su Ruby e Ruby on Rails .
Iscriviti alla newsletter