Trilha Pleno Trilha

Rails: arquitetura Rack

O curso acompanha a camada Rack que fica por baixo de uma aplicação Rails 8.1. Ele lê o código do ActionDispatch::MiddlewareStack#build e do MiddlewareStackProxy, que grava as chamadas a config.middleware para aplicá-las no fim do boot. Mostra como o Rack::Builder avalia o config.ru e como o Puma transforma HTTP cru no Hash env e escreve a resposta de volta. Explica por que um body Rack só precisa responder a each. Também trata do Rack::Response, do mixin Rack::Request::Helpers no ActionDispatch::Request e de um desafio de parsing de query string.

O que você vai aprender

  • ✓Como o MiddlewareStack#build envolve os middlewares com reverse e inject
  • ✓Como o MiddlewareStackProxy grava as chamadas a config.middleware e as aplica no boot
  • ✓Como o Rack::Builder avalia o config.ru e o que fazem run, use e map
  • ✓Como o Puma transforma HTTP cru no env e escreve a resposta no socket
  • ✓Por que o body Rack precisa de each, como funciona o streaming e para que serve o Rack::Response
  • ✓Como o ActionDispatch::Request ganha o Rack::Request::Helpers por composição
Prévia grátis · Aula 1 3 min de leitura

A máquina real por trás do config.middleware

O desafio final do curso passado pedia uma função run_chain(env, middlewares, final_app). Ela começa por final_app, percorre a lista de middlewares de trás para frente e envolve cada um em volta da aplicação atual. Se a sua solução ficou parecida com middlewares.reverse_each { |mw| app =…

Ler a aula completa grátis →

Currículo

7 aulas
Digite para buscar...