Hakkında çok fazla konuşma var Raf, ancak kendiniz bir çerçeve yazarı değilseniz, nadiren görürsünüz. Peki Rack nedir? Ve neden bir uygulama geliştiricisi olarak bunu önemsemelisiniz?
Raf Hakkında Temel Bilgiler
Raf bir çeşit ara katman yazılımıdır. Web uygulamanız ve web sunucusu arasında oturur. Sunucuya özel tüm API çağrılarını yönetir, HTTP isteğini ve bir karma içindeki tüm ortam parametrelerini iletir ve uygulamanızın sunucuya yanıtını verir. Başka bir deyişle, uygulamanızın bir HTTP sunucusuyla nasıl konuşulacağını bilmesine gerek yoktur, Rack ile nasıl konuşulacağını bilmelidir.
Rafın Avantajları
Bunun bir takım avantajları vardır. İlk olarak, Rack ile konuşmak kolaydır (aşağıda göreceğiniz gibi). İkincisi, yalnızca Rack ile nasıl konuşacağınızı bilmeniz gerektiğinden ve Rack birçok farklı HTTP sunucusuyla nasıl konuşacağınızı bildiğinden, uygulamanız bu HTTP sunucularından herhangi birinde çalışacaktır. Raf, web uygulamaları için evrensel bir adaptör gibidir.
Rack uygulamalarının kendileri özel bir şey değildir. Aslında, Rack API çok basittir, tek bir cümle ile açıklanabilir:
Bir Rack uygulaması, aramak yöntemi, tek bir karma parametresi alır ve yanıt durum kodu, HTTP yanıt üstbilgileri ve yanıt gövdesini bir dizeler dizisi olarak içeren bir dizi döndürür.
Hepsi bukadar. Gerçek olamayacak kadar basit ya da en azından kullanışlı olamayacak kadar basit geliyor, ancak gerçekten işe yaradığında, HTTP sunucularıyla konuşurken gerçekten yaptığınız şey bu.
Raf Neden Önemlidir?
Ama asıl soruya: Bir uygulama programcısı olarak neden Rack'i önemsemelisiniz? İlk olarak, çerçevenizin nasıl çalıştığını anlama konusunda her zaman bir aydınlanma vardır. Ancak daha da önemlisi, Rack ile yapabileceğiniz faydalı şeyler var. En önemlisi: ara katman yazılımı.
Şimdi, bu biraz garip geliyor. Ancak uygulamanız ve Rack arasında ekstra bir katman iyi bir şey olabilir ve yalnızca uygulamanızı karmaşıklaştıracak özellikler uygulayabilir. Bu ara yazılımın yaptığı şey sadece Rack'tan istek almak, uygulamanıza aktarmak, yanıt verin, buna bir şeyler ekleyin veya bu satırlar boyunca bir şeyleri filtreleyin ve ardından yanıtı Raf. Bu, sunucu agnostik bir günlükçü veya bir istek gibi çok ilginç küçük özellikleri uygulamak için kullanılabilir sağlık denetleyicisi veya uygulamanız her geri geldiğinde bir yöneticiye e-posta gönderen küçük bir ara katman yazılımı 404. Bu özelliklerin hiçbiri uygulamanızı karmaşıklaştırmak zorunda değildir, Rack ile ara katman yazılımı olarak uygulanabilir.