Co to všechno mluví o aplikacích Rack?

O tom se hodně mluví Nosič, ale pokud nejste autorem rámce, vidíte to jen zřídka. Co je Rack? A proč byste se o to jako vývojář aplikace měl zajímat?

Základy Racku

Rack je druh middlewaru. Je umístěn mezi vaší webovou aplikací a webovým serverem. Zpracovává všechna volání API specifická pro server, předává požadavek HTTP a všechny parametry prostředí v hashu a dává vaší aplikaci odpověď zpět serveru. Jinými slovy, vaše aplikace nemusí vědět, jak mluvit se serverem HTTP, musí vědět, jak mluvit s Rackem.

Výhody stojanu

To má řadu výhod. Zaprvé, mluvení s Rackem je snadné (jak uvidíte níže). Za druhé, protože potřebujete pouze vědět, jak mluvit s Rackem, a Rack ví, jak mluvit s mnoha různými servery HTTP, vaše aplikace bude spuštěna na kterémkoli z těchto serverů HTTP. Rack je jako univerzální adaptér pro webové aplikace.

Samotné aplikace Rack nejsou nic zvláštního. Ve skutečnosti je API Racku tak jednoduché, že ho lze popsat v jedné větě:

Racková aplikace je jakýkoli objekt Ruby, který reaguje na
instagram viewer
volání metoda, vezme jeden hash parametr a vrátí pole obsahující kód stavu odpovědi, hlavičky odpovědí HTTP a tělo odpovědi jako pole řetězců.

To je do značné míry. Zní to příliš jednoduše na to, aby to byla pravda, nebo alespoň příliš jednoduchá na to, aby byla užitečná, ale když to opravdu přijde, to je vše, co opravdu děláte, když mluvíte se servery HTTP.

Proč je Rack důležitý?

Ale na skutečnou otázku: Proč byste se jako aplikačního programátora měli zajímat o Racka? Za prvé, vždy existuje osvícení v pochopení toho, jak funguje váš rámec. Ale co je důležitější, s Rackem můžete dělat užitečné věci. A co je nejdůležitější: middleware.

Teď to zní trochu divně. Ale další vrstva mezi vaší aplikací a Rackem může být dobrá věc a implementovat funkce, které by pouze nepříznivě ovlivnily vaši aplikaci. To, co tento middleware dělá, je jednoduše vzít žádost z Racku, předat ji do aplikace, získat její odpověď, přidejte k ní něco nebo jej filtrujte nebo něco podle těchto řádků a poté předejte odpověď zpět Nosič. To lze použít k implementaci velmi zajímavých malých funkcí, jako je serverově agnostický záznamník nebo požadavek kontrola hygieny, nebo malý middleware, který e-mailem administrátorovi pokaždé, když se vaše aplikace vrátí s 404. Žádná z těchto funkcí nemusí zaplnit vaši aplikaci, mohou být implementovány jako middleware s Rackem.

instagram story viewer