Kā lietot plaukta lietojumu rubīnā

Iekš iepriekšējais raksts, jūs uzzinājāt, kas ir Rack. Tagad ir laiks sākt lietot Rack un apkalpot dažas lapas.

Sveika pasaule

Pirmkārt, sāksim ar “Sveika pasaule”Pieteikums. Šī lietojumprogramma neatkarīgi no tā, kāda veida pieprasījums tai tiek piešķirta, atgriezīsies ar statusa kodu 200 (kas ir HTTP runā par “OK”) un virkni "Sveika pasaule" kā ķermenis.

Pirms šī koda izpētes vēlreiz apsveriet prasības, kurām jāatbilst jebkuram Rack lietojumam.

Rack lietojumprogramma ir jebkurš Ruby objekts, kas reaģē uz zvana metodi, ņem vienu hash parametru un atgriež masīvu, kurā ir atbildes statusa kods, HTTP atbildes galvenes un atbildes korpuss kā masīvs stīgas.
klase HelloWorld
def izsaukums (env)
atgriezties [200, {}, ["Sveika pasaule!"]]
beigas
beigas

Kā redzat, tipa objekts Sveika pasaule atbildīs visām šīm prasībām. Tas tiek darīts ļoti minimāli un nav šausmīgi noderīgs, taču tas atbilst visām prasībām.

WEBrick

Tas ir diezgan vienkārši, tagad iespraudīsim to WEBrick (pievienotajā HTTP serverī Rubīns

instagram viewer
). Lai to izdarītu, mēs izmantojam Plaukts:: Apdarinātājs:: WEBrick.run metodi, nodod tam Sveika pasaule un osta, kurā darboties. Tagad darbosies WEBrick serveris, un Rack pārsūtīs pieprasījumus starp HTTP serveri un jūsu lietojumprogrammu.

Ņemiet vērā, ka tas nav ideāls veids, kā sākt lietas ar Rack. Tas ir parādīts tikai šeit, lai kaut ko iesāktu, pirms ienirt citā Rack funkcijā ar nosaukumu “Rackup”, kas parādīta zemāk. Šādā veidā izmantojot Rack:: Handler, ir dažas problēmas. Pirmkārt, tas nav ļoti konfigurējams. Viss ir grūti iekodēts skriptā. Otrkārt, kā pamanīsit, palaižot šo skriptu, jūs nevarat nogalināt programmu. Tas neatbild uz Ctrl-C. Ja palaižat šo komandu, vienkārši aizveriet termināla logu un atveriet jaunu.

#! / usr / bin / env rubīns
pieprasīt “plauktu”
klase HelloWorld
def izsaukums (env)
atgriezties [200, {}, ["Sveika pasaule!"]]
beigas
beigas
Plaukts:: Apdarinātājs:: WEBrick.run (
HelloWorld.new,
: Osta => 9000
)

Rackup

Lai gan to ir diezgan viegli izdarīt, tas nav tas, kā Rack parasti tiek izmantots. Plaukts parasti tiek izmantots ar instrumentu, ko sauc par rackup. Rackup vairāk vai mazāk dara to, kas bija augšējā koda apakšējā sadaļā, bet izmantojamākā veidā. Rackup tiek palaists no komandrindas, un tam tiek dota a .ru “Pārkopēšanas fails”. Šis ir tikai Ruby skripts, kas, cita starpā, nodrošina lietojumprogrammu Rackup.

Iepriekš aprakstīts ļoti vienkāršs Rackup fails izskatīsies apmēram šādi.

klase HelloWorld
def izsaukums (env)
atgriezties [
200,
{'Content-Type' => 'text / html'},
["Sveika pasaule!"]
]
beigas
beigas
palaist vietni HelloWorld.new

Pirmkārt, mums bija jāveic vienas niecīgas izmaiņas Sveika pasaule klase. Rackup darbojas starpprogrammatūra, kuras nosaukums ir Plaukts:: Lint ka saprāts pārbauda atbildes. Visām HTTP atbildēm jābūt a Satura tips galvene, tā ka tika pievienota. Pēc tam pēdējā rindā vienkārši tiek izveidots lietotnes piemērs un nodots lietojumprogrammai skriet metode. Ideālā gadījumā jūsu lietojumprogramma nebūtu jāraksta pilnībā krājuma failā, šajā failā ir jāprasa jūsu pieteikums tajā un tādā veidā jāizveido tā piemērs. Rackup fails ir tikai “līme”, un tam nevajadzētu būt reālam lietojumprogrammas kodam.

Ja izpildāt komandu rackup helloworld.ru, tas sāks serveri 9292 ostā. Šis ir noklusējuma Rackup ports.

Rackup ir vēl dažas noderīgas funkcijas. Pirmkārt, tādas lietas kā portu var mainīt komandrindā vai īpašā skripta rindā. Komandas rindā vienkārši ievadiet a -p osta parametrs. Piemēram: rackup -p 1337 helloworld.ru. No paša skripta, ja pirmā rinda sākas ar #\, tad tas tiek parsēts tāpat kā komandrinda. Tātad šeit varat definēt arī iespējas. Ja vēlaties darboties 1337. portā, Rackup faila pirmajā rindā varēja lasīt # \ -p 1337.

instagram story viewer