Ce este toate aceste discuții despre aplicațiile Rack?

click fraud protection

Se vorbește mult despre asta portbagaj, dar dacă nu sunteți autorul unui cadru, îl vedeți foarte rar. Deci ce este Rack? Și de ce, ca dezvoltator de aplicații, ar trebui să-ți pese de asta?

Bazele rafturilor

Rack-ul este un fel de middleware. Se află între aplicația dvs. web și serverul web. Gestionează toate apelurile API specifice serverului, transmite solicitarea HTTP și toți parametrii de mediu dintr-o hașă și dă răspunsul aplicației la server. Cu alte cuvinte, aplicația dvs. nu trebuie să știe să vorbească cu un server HTTP, trebuie să știe să vorbească cu Rack.

Avantajele Rack-ului

Aceasta prezintă o serie de avantaje. În primul rând, a vorbi cu Rack este ușor (așa cum veți vedea mai jos). În al doilea rând, din moment ce nu trebuie decât să știi cum să vorbești cu Rack, iar Rack știe să vorbească cu multe servere HTTP diferite, aplicația ta va rula pe oricare dintre aceste servere HTTP. Rack-ul este ca un adaptor universal pentru aplicații web.

Aplicațiile Rack în sine nu sunt nimic special. De fapt, API-ul Rack este atât de simplu simplu, încât poate fi descris într-o singură propoziție:

instagram viewer

O aplicație Rack este orice obiect Ruby care răspunde la apel metodă, ia un singur parametru hash și returnează un tablou care conține codul de stare de răspuns, anteturile de răspuns HTTP și corpul de răspuns ca un tablou de șiruri.

Cam asta e tot. Pare prea simplu pentru a fi adevărat, sau cel puțin prea simplu pentru a fi util, dar atunci când se reduce cu adevărat la asta, tot ceea ce faceți cu adevărat atunci când vorbiți cu serverele HTTP.

De ce este important Rack-ul?

Dar la întrebarea reală: de ce, ca programator de aplicații, ar trebui să vă pese de Rack? În primul rând, există întotdeauna iluminare în a înțelege modul în care funcționează cadrul tău. Dar, mai important, sunt lucruri utile pe care le poți face cu Rack. Cel mai important: middleware.

Acum, sună un pic ciudat. Dar un strat suplimentar între aplicația ta și Rack poate fi un lucru bun și poți implementa caracteristici care ar înghesui doar aplicația ta. Ce face acest middleware este pur și simplu să preiați cererea de la Rack, să o transmiteți aplicației dvs., să o primiți răspuns, adăugați ceva sau filtrați-l sau ceva de-a lungul acestor linii și apoi treceți răspunsul la Rack. Acest lucru poate fi utilizat pentru a implementa caracteristici foarte interesante, cum ar fi un logger-agnostic server sau o solicitare sanity checker sau un mic software central care trimite pe email un admin de fiecare dată când aplicația ta revine cu un 404. Niciuna dintre aceste caracteristici nu trebuie să înghesuie aplicația, ele pot fi implementate ca middleware cu Rack.

instagram story viewer