Kuinka käyttää telinesovellusta Rubyssa

click fraud protection

vuonna edellinen artikkeli, opit mitä Rack on. Nyt on aika alkaa käyttää Rackia ja palvella joitain sivuja.

Hei maailma

Aloitetaan ensin sanalla “Hei maailma”Sovellus. Tämä sovellus palaa tilakoodilla 200 (joka on HTTP-puhua "OK") riippumatta siitä, millaisesta pyynnöstä se annetaan, ja merkkijonolla "Hei maailma" kuin vartalo.

Ennen seuraavan koodin tutkimista harkitse uudelleen vaatimuksia, jotka kaikkien telinesovellusten on täytettävä.

Rack-sovellus on mikä tahansa Ruby-objekti, joka vastaa kutsutapaan, ottaa yhden hash-parametrin ja palauttaa taulukon, joka sisältää vastauskoodin, HTTP-vastausotsikot ja vastauskappaleen taulukkona jouset.
luokka HelloWorld
def call (env)
palauta [200, {}, ["Hei maailma!"]]
pää
pää

Kuten näette, tyyppinen esine Hei maailma täyttää kaikki nämä vaatimukset. Se tekee niin hyvin minimaalisella eikä ole kovin hyödyllisellä tavalla, mutta täyttää kuitenkin kaikki vaatimukset.

WEBrick

Se on melko yksinkertaista, kytke nyt se WEBrickiin (mukana tuleva HTTP-palvelin)

instagram viewer
Rubiini). Tätä varten käytämme Räkki:: Hoitaja:: WEBrick.run menetelmä, välitä se esimerkiksi Hei maailma ja portti, jota käytetään. WEBrick-palvelin on nyt käynnissä, ja Rack välittää pyyntöjä HTTP-palvelimen ja sovelluksesi välillä.

Huomaa, että tämä ei ole ihanteellinen tapa aloittaa asiat Rackilla. Tässä näytetään vain saada jotain käynnissä ennen sukellusta toiseen Rack-ominaisuuteen nimeltään "Rackup", joka näkyy alla. Rack:: Handler -sovelluksen käyttäminen tällä tavalla on muutama ongelma. Ensinnäkin, se ei ole kovin konfiguroitavissa. Kaikki on koodattu käsikirjoitukseen. Toiseksi, kun huomaat, että suoritat seuraavan komentosarjan, et voi tappaa ohjelmaa. Se ei vastaa Ctrl-C: lle. Jos suoritat tämän komennon, sulje vain pääteikkuna ja avaa uusi.

#! / usr / bin / env ruby
vaatia "teline"
luokka HelloWorld
def call (env)
palauta [200, {}, ["Hei maailma!"]]
pää
pää
Räkki:: Hoitaja:: WEBrick.run (
HelloWorld.new,
: Portti => 9000
)

Kerätä

Vaikka tämä on melko helppoa tehdä, telineitä ei käytetä normaalisti. Räkkiä käytetään yleensä kutsutun työkalun kanssa kerätä. Rackup tekee enemmän tai vähemmän sen, mikä oli yllä olevan koodin alaosassa, mutta käyttökelpoisemmalla tavalla. Kokoonpano suoritetaan komentoriviltä, ​​ja sille annetaan a .ru "Räkkitiedosto." Tämä on vain Ruby-skripti, joka muun muassa syöttää sovelluksen Rackupiin.

Hyvin perustiedot yllä olevasta Rackup-tiedostosta näyttävät tältä.

luokka HelloWorld
def call (env)
palata [
200,
{'Content-Type' => 'text / html'},
["Hei maailma!"]
]
pää
pää
suorita HelloWorld.new

Ensinnäkin meidän oli tehtävä yksi pieni muutos Hei maailma luokka. Rackup on käynnissä välitysohjelma nimeltään Teline:: Lint että järki tarkistaa vastaukset. Kaikilla HTTP-vastauksilla tulisi olla a Sisältötyyppi otsikko, joten se lisättiin. Sitten viimeinen rivi vain luo sovelluksen ilmentymän ja välittää sen juosta menetelmä. Ihannetapauksessa sovellustasi ei pitäisi kirjoittaa kokonaan Rackup-tiedostoon, tämän tiedoston on vaadittava sovellustasi siihen ja luotava esimerkki siitä tällä tavalla. Rackup-tiedosto on vain "liima", todellisen sovelluskoodin ei pitäisi olla siellä.

Jos suoritat komennon rackup helloworld.ru, se käynnistää palvelimen portissa 9292. Tämä on oletusrakennusportti.

Kokoonpanossa on joitain hyödyllisiä ominaisuuksia. Ensinnäkin asioita, kuten portti, voidaan muuttaa komentorivillä tai komentosarjan erikoisrivillä. Kirjoita komentoriville vain a -p-portti parametri. Esimerkiksi: rackup -p 1337 helloworld.ru. Itse komentosarjasta, jos ensimmäinen rivi alkaa #\, sitten se jäsentää aivan kuten komentorivi. Joten voit määritellä vaihtoehdot myös täällä. Jos haluat ajaa portilla 1337, Rackup-tiedoston ensimmäinen rivi voi lukea # \ -p 1337.

instagram story viewer