O tem se veliko govori Stojalo, a razen če ste sam avtor okvirja, ga le redko vidite. Kaj je torej Rack? In zakaj bi vas kot razvijalca aplikacij skrbeli?
Osnove stojala
Rack je neke vrste vmesna programska oprema. Leži med vašo spletno aplikacijo in spletnim strežnikom. Ta obravnava vse klicne API-je, povezane s strežnikom, posreduje zahtevo HTTP in vse okoljske parametre v hashu in strežniku vrne odziv vaše aplikacije. Z drugimi besedami, vaši aplikaciji ni treba vedeti, kako govoriti s strežnikom HTTP, vedeti mora, kako govoriti z Rackom.
Prednosti Rack-a
To ima številne prednosti. Prvič, pogovor z Rackom je enostaven (kot boste videli spodaj). Drugič, ker morate le vedeti, kako govoriti z Rackom, in Rack ve, kako se pogovarjati z več različnimi strežniki HTTP, bo vaša aplikacija zagnana na katerem koli od teh strežnikov HTTP. Rack je kot univerzalni adapter za spletne aplikacije.
Sami aplikacije Rack niso nič posebnega. Pravzaprav je API Rack tako mrtev preprost, da ga je mogoče opisati v enem samem stavku:
Rack aplikacija je vsak predmet Ruby, ki se odzove na klic metoda, vzame en parameter hash in vrne matriko, ki vsebuje kodo stanja odziva, glave odzivov HTTP in odzivno telo kot niz nizov.
To je precej. Sliši se preveč preprosto, da bi bilo resnično ali vsaj preveč preprosto, da bi bilo uporabno, toda ko se resnično spusti do njega, je to vse, kar resnično počnete, ko se pogovarjate s strežniki HTTP.
Zakaj je stojalo pomembno?
Toda k pravemu vprašanju: Zakaj bi vas kot aplikacijskega programerja zanimalo Rack? No, najprej, vedno je razsvetljenje v razumevanju, kako deluje vaš okvir. Še pomembneje pa je, da lahko z Rackom storite koristne stvari. Najpomembneje: vmesna programska oprema.
Zdaj se to sliši nekoliko nenavadno. Toda dodatna plast med vašo aplikacijo in Rackom je lahko dobra stvar in implementirajte funkcije, ki bi vašo aplikacijo le neprijetno omejile. Ta vmesna programska oprema je, da preprosto vzamete zahtevo iz Racka, jo posredujete svoji aplikaciji in jo dobite odgovora, mu dodajte nekaj ali ga filtrirajte ali nekaj po teh vrsticah in nato odgovor pošljite nazaj Stojalo To je mogoče uporabiti za izvajanje zelo zanimivih majhnih funkcij, kot je strežnik-agnostni zapisnik, ali zahteva preglednost ali malo vmesne programske opreme, ki pošlje skrbnika vsakič, ko se vaša aplikacija vrne z 404. Nobene od teh funkcij vam ne bo treba pretlačiti v aplikacijo, saj jih lahko uporabljate kot vmesno programsko opremo z Rackom.