Rotas e parâmetros
Lide com HTTP.
Rotas e parâmetros é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ruby Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ruby Academy inclui 4 aulas no total.
Processando requisições HTTP
As aplicações web respondem às requisições correspondendo rotas e lendo parâmetros.
- Os segmentos do caminho podem ser dinâmicos
- As strings de consulta transportam dados adicionais
- Os corpos de formulário transportam campos enviados
O Sinatra disponibiliza todos esses dados por meio do mapa params.
require 'sinatra'
get '/echo' do
params['msg'].to_s
endParâmetros de rota nomeados
Dois-pontos no caminho definem um parâmetro nomeado que captura um segmento do caminho.
/users/:idcorresponde a/users/42- O valor capturado aparece em
params['id']
require 'sinatra'
get '/users/:id' do
"User ID is #{params['id']}"
endVários parâmetros
Uma rota pode ter vários parâmetros nomeados.
- Cada segmento iniciado por dois-pontos se torna uma chave em
params - A ordem no caminho não importa para o acesso
require 'sinatra'
get '/posts/:year/:month' do
"Posts from #{params['month']}/#{params['year']}"
endParâmetros da string de consulta
Os valores da string de consulta após ? também vão para params.
/search?q=rubyforneceparams['q'] == 'ruby'- Vários pares são separados por
&
require 'sinatra'
get '/search' do
"Searching for: #{params['q']}"
endTrabalhando com parâmetros como um mapa
O objeto params se comporta como um mapa Ruby. Praticar com um mapa simples torna os padrões claros.
- Use
fetchcom um valor padrão para obter segurança - Por convenção, as chaves são cadeias de caracteres
params = { 'name' => 'Ada', 'lang' => 'Ruby' }
puts params['name']
puts params.fetch('age', 'unknown')Dados de formulário com POST
Nas requisições post, os campos de formulário enviados também aparecem em params.
- O Sinatra analisa o corpo da requisição automaticamente
- O padrão de acesso é o mesmo dos parâmetros de consulta
require 'sinatra'
post '/signup' do
"Welcome, #{params['username']}"
endParâmetros curinga
Um curinga (*) corresponde a qualquer quantidade de caracteres e os armazena no vetor params['splat'].
/files/*captura o restante do caminho- Vários curingas produzem várias entradas no vetor
require 'sinatra'
get '/files/*' do
"Path: #{params['splat'].first}"
endRotas opcionais e com expressões regulares
As rotas podem usar expressões regulares para correspondências precisas.
- As capturas ficam disponíveis em
params['captures'] - Isso é útil para restrições como aceitar apenas IDs numéricos
require 'sinatra'
get %r{/item/(\d+)} do
"Item #{params['captures'].first}"
endValidando parâmetros
Sempre valide e converta os parâmetros recebidos, pois eles chegam como cadeias de caracteres.
- Use
to_iouInteger()para números - Rejeite valores obrigatórios ausentes com um erro claro
def parse_id(raw)
id = Integer(raw)
raise 'must be positive' if id <= 0
id
end
puts parse_id('42')Valores padrão
Forneça valores padrão adequados para parâmetros opcionais e evite erros de valores nulos.
params.fetch('page', '1')- Combine isso com uma conversão para obter uma paginação segura
params = { 'page' => nil }
page = (params['page'] || '1').to_i
puts "Page: #{page}"Redirecionando
Use redirect para enviar o cliente a outra URL.
- Emite o status 302 por padrão
- É comum após um envio de formulário bem-sucedido
require 'sinatra'
post '/login' do
redirect '/dashboard'
endVerificação rápida
Verifique o que você sabe sobre rotas e parâmetros.
Recapitulação
Você aprendeu como o Sinatra lida com dados de entrada:
- Os parâmetros nomeados usam
:nameno caminho - Strings de consulta e campos de formulário também preenchem
params - Curingas e rotas com expressões regulares capturam caminhos flexíveis
- Sempre valide e converta parâmetros que sejam cadeias de caracteres
- Use
redirectpara mover clientes entre URLs
A seguir, você retornará respostas JSON estruturadas.
Perguntas Frequentes
A aula “Rotas e parâmetros” é grátis?
Sim — o texto completo de “Rotas e parâmetros” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ruby Academy, atualize para CoddyKit PRO. O curso de Ruby Academy inclui 4 aulas no total.
O que vou aprender em “Rotas e parâmetros”?
Lide com HTTP. Você pratica Ruby Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Ruby Academy?
Nenhuma experiência prévia é necessária. Ruby Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Rotas e parâmetros”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Ruby Academy?
Sim. Cada aula de Ruby Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Fundamentos do Sinatra
- Rotas e parâmetros
- APIs JSON
- Middleware e Rack