Apie tai daug kalbama Rack, bet nebent pats esate pagrindų autorius, retai tai matote. Taigi, kas yra „Rack“? Ir kodėl jums, kaip programų kūrėjui, turėtų tai rūpėti?
Rack pagrindai
Rack yra tam tikra tarpinė programinė įranga. Jis yra tarp jūsų žiniatinklio programos ir žiniatinklio serverio. Jis tvarko visus serverio API skambučius, perduoda HTTP užklausą ir visus aplinkos parametrus maišos būdu ir pateikia jūsų programos atsakymą atgal į serverį. Kitaip tariant, jūsų programai nereikia žinoti, kaip kalbėti su HTTP serveriu, ji turi žinoti, kaip kalbėti su „Rack“.
Stelažo pranašumai
Tai turi nemažai pranašumų. Pirmiausia, nesunku susikalbėti su Racku (kaip pamatysite toliau). Antra, kadangi jūs turite žinoti tik kaip kalbėti su „Rack“, o „Rack“ žino, kaip kalbėti su daugeliu skirtingų HTTP serverių, jūsų programa veiks bet kuriame iš šių HTTP serverių. Rack yra tarsi universalus adapteris žiniatinklio programoms.
Pačios „Rack“ programos nėra nieko ypatingo. Tiesą sakant, „Rack“ API yra tokia paprasta, kad ją galima apibūdinti vienu sakiniu:
„Rack“ programa yra bet koks „Ruby“ objektas, kuris reaguoja į skambinti Metodas, paima vieną maišos parametrą ir grąžina masyvą, kuriame yra atsakymo būsenos kodas, HTTP atsakymo antraštės ir atsakymo korpusas kaip stygų masyvas.
Tai beveik tiek. Tai skamba per daug paprasta, kad būtų tiesa, arba bent jau per daug paprasta, kad būtų naudinga, bet kai tai tikrai suprantama, tai viskas, ką jūs iš tikrųjų darote, kai kalbate su HTTP serveriais.
Kodėl stovas yra svarbus?
Bet į tikrąjį klausimą: kodėl, kaip programų programuotojui, jums turėtų rūpėti „Rack“? Pirmiausia, visada suprantame, kaip veikia jūsų sistema. Bet dar svarbiau, kad yra naudingų dalykų, kuriuos galite padaryti su „Rack“. Svarbiausia: tarpinė programinė įranga.
Dabar tai skamba šiek tiek keistai. Bet papildomas sluoksnis tarp jūsų programos ir „Rack“ gali būti geras dalykas ir įdiegti funkcijas, kurios tik užgriozdins jūsų programą. Tai, ką daro ši tarpinė programinė įranga, yra tiesiog priimti „Rack“ prašymą, perduoti jį jūsų programai, gauti atsakymą, pridėkite prie jo ką nors arba filtruokite jį ar ką nors tokio, ir atsakymą perduokite atgal Rack. Tai gali būti naudojama įgyvendinant labai įdomias mažas funkcijas, tokias kaip serverio-agnostinis duomenų kaupiklis ar užklausa sveikumo tikrinimo priemonė arba nedidelė tarpinė programinė įranga, kuri el. paštu siunčia adminą kaskart, kai jūsų programa grįš su 404. Nei vienai iš šių funkcijų nereikia prikišti jūsų programos, jas galima įdiegti kaip tarpinę programinę įrangą su „Rack“.