Puno se priča razbijati, ali ako sami niste autor okvira, rijetko je vidite. Pa što je Rack? I zašto biste se kao programer aplikacija trebali brinuti o tome?
Osnove stalak
Rack je vrsta softvera. Sjedi između vaše web aplikacije i web poslužitelja. On obrađuje sve API pozive specifične za poslužitelj, prosljeđuje HTTP zahtjev i sve parametre okoline u hash i vraća odgovor vaše aplikacije na poslužitelj. Drugim riječima, vaša aplikacija ne mora znati kako razgovarati s HTTP poslužiteljem, ona mora znati kako razgovarati sa Rackom.
Prednosti Rack-a
To ima niz prednosti. Prvo je razgovor sa Rackom jednostavan (kao što ćete vidjeti dolje). Drugo, budući da samo trebate znati kako razgovarati s Rackom, a Rack zna kako razgovarati s mnogim različitim HTTP poslužiteljima, vaša će se aplikacija pokrenuti na bilo kojem od ovih HTTP poslužitelja. Rack je poput univerzalnog adaptera za web aplikacije.
Sami aplikacije Rack nisu ništa posebno. U stvari, Rack API je toliko mrtav jednostavan da se može opisati u jednoj rečenici:
Rack aplikacija je svaki Ruby objekt koji reagira na poziv metoda, uzima jedan hash parametar i vraća niz koji sadrži kôd statusa odgovora, zaglavlja HTTP odgovora i tijelo odgovora kao niz nizova.
To je prilično. Zvuči previše jednostavno da bi bilo istinito ili barem previše jednostavno da bi bilo korisno, ali kada se to stvarno sruši, to je sve što stvarno radite u razgovoru s HTTP poslužiteljima.
Zašto je stalak važan?
Ali, na pravo pitanje: Zašto biste se kao programer programa trebali brinuti za Rack? Pa prvo, uvijek postoji prosvjetljenje u razumijevanju kako vaš okvir funkcionira. Ali što je još važnije, postoje korisne stvari koje možete učiniti s Rackom. Najvažnije: srednji softver.
Ovo zvuči pomalo čudno. Ali dodatni sloj između vaše aplikacije i Rack-a može biti dobra stvar i implementirati značajke koje bi samo ometale vašu aplikaciju. Ovaj srednji softver čini jednostavno uzeti zahtjev s Racka, proslijediti ga svojoj aplikaciji, dobiti odgovor, dodajte mu nešto ili ga filtrirajte ili nešto zajedno s tim linijama, a zatim vratite odgovor natrag Stalak. Ovo se može koristiti za implementaciju vrlo zanimljivih malih značajki poput poslužitelja-agnostičkog zapisnika ili zahtjeva provjera razumnosti ili malo srednjeg softvera koji administratoru e-pošte šalje svaki put kada se vaša aplikacija vrati sa 404. Nijedna od ovih značajki ne mora pretrpjeti vašu aplikaciju, one se mogu implementirati kao srednji softver s Rack-a.