Ruby'de Rack Uygulaması Nasıl Kullanılır

click fraud protection

İçinde önceki makale, Rack'in ne olduğunu öğrendin. Şimdi, Rack'i kullanmaya başlamanın ve bazı sayfaları sunmanın zamanı geldi.

Selam Dünya

İlk olarak, “Selam Dünya" uygulama. Bu uygulama, ne tür bir istek verilirse verilsin, 200 durum koduyla (“Tamam” için HTTP-konuşur) ve dizeyle döner "Selam Dünya" vücut olarak.

Aşağıdaki kodu incelemeden önce, herhangi bir Rack uygulamasının yerine getirmesi gereken gereksinimleri tekrar göz önünde bulundurun.

Bir Rack uygulaması, çağrı yöntemine yanıt veren, tek bir hash parametresi alan ve yanıt durum kodunu, HTTP yanıt başlıklarını ve yanıt gövdesini bir dizi olarak içeren bir dizi döndürür Teller.
sınıfı HelloWorld
def call (env)
dönüş [200, {}, ["Merhaba dünya!"]]
son
son

Gördüğünüz gibi, bu tür bir nesne Selam Dünya tüm bu gereksinimleri karşılayacaktır. Bunu çok minimal ve çok kullanışlı olmayan bir şekilde yapar, ancak tüm gereksinimleri karşılar.

WEBrick

Bu oldukça basit, şimdi WEBrick'e (birlikte gelen HTTP sunucusu) Yakut). Bunu yapmak için, Raf:: İşleyici:: WEBrick.run

instagram viewer
yöntemi, bir örneği geçmek Selam Dünya ve üzerinde çalışacak port. Şimdi bir WEBrick sunucusu çalışacak ve Rack HTTP sunucusu ile uygulamanız arasında istekleri iletecek.

Bu, Rack ile bir şeyler başlatmanın ideal bir yolu olmadığını unutmayın. Burada yalnızca aşağıda gösterilen Rackup'ın "Rackup" adlı başka bir özelliğine dalmadan önce bir şeyin yayınlanmasını sağlamak için gösterilmiştir. Rack:: Handler'ı bu şekilde kullanmanın birkaç sorunu vardır. İlk olarak, çok yapılandırılabilir değil. Her şey senaryoya kodlanmıştır. İkincisi, aşağıdaki komut dosyasını çalıştırdığınızı fark edeceğiniz gibi, programı öldüremezsiniz. Ctrl-C'ye yanıt vermiyor. Bu komutu çalıştırırsanız, terminal penceresini kapatın ve yeni bir pencere açın.

#! / usr / bin / env yakut
'raf' gerektir
sınıfı HelloWorld
def call (env)
dönüş [200, {}, ["Merhaba dünya!"]]
son
son
Raf:: İşleyici:: WEBrick.run (
HelloWorld.new,
: Bağlantı Noktası => 9000
)

Yem vermek

Bunu yapmak oldukça kolay olsa da, Rack normalde bu şekilde kullanılmaz. Raf normalde şu şekilde adlandırılan bir aletle kullanılır: yem vermek. Rackup, yukarıdaki kodun alt bölümünde ne olduğunu az çok yapar, ancak daha kullanışlı bir şekilde. Rackup komut satırından çalıştırılır ve bir .ru "Rackup dosyası." Bu, diğer şeylerin yanı sıra, Rackup'a bir uygulama besleyen sadece bir Ruby betiğidir.

Yukarıdakiler için çok temel bir Rackup dosyası böyle görünecektir.

sınıfı HelloWorld
def call (env)
dönüş [
200,
{'İçerik Tipi' => 'metin / html'},
["Selam Dünya!"]
]
son
son
HelloWorld.new'i çalıştırın

İlk olarak, küçük bir değişiklik yapmak zorunda kaldık. Selam Dünya sınıf. Rackup adlı bir ara katman yazılımı uygulaması çalıştırıyor Raf:: Tüy bırakmayan akıl sağlığı cevapları denetler. Tüm HTTP yanıtlarında bir İçerik türü başlık, böylece eklendi. Ardından, son satır yalnızca uygulamanın bir örneğini oluşturur ve Çalıştırmak yöntem. İdeal olarak, uygulamanız tamamen Rackup dosyasında yazılmamalıdır, bu dosya uygulamanızı içine almalı ve bu şekilde bir örnek oluşturmalıdır. Rackup dosyası sadece “tutkal” dır, orada gerçek bir uygulama kodu olmamalıdır.

Komutu çalıştırırsanız rackup helloworld.ru, 9292 numaralı bağlantı noktasında bir sunucu başlatır. Bu varsayılan Rackup bağlantı noktasıdır.

Rackup'ın bazı daha kullanışlı özellikleri vardır. İlk olarak, port gibi şeyler komut satırında veya koddaki özel bir satırda değiştirilebilir. Komut satırında, -p bağlantı noktası parametre. Örneğin: rackup -p 1337 Instagram Hesabındaki Resim ve Videoları helloworld.ru. Komut dosyasının kendisinden, eğer ilk satır ile başlarsa #\, komut satırı gibi ayrıştırılır. Burada seçenekleri de tanımlayabilirsiniz. 1337 numaralı bağlantı noktasında çalıştırmak istiyorsanız, Rackup dosyasının ilk satırı # \ -p 1337.

instagram story viewer