0Pricing
Ruby Academy · Aula

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
end

Parâmetros de rota nomeados

Dois-pontos no caminho definem um parâmetro nomeado que captura um segmento do caminho.

  • /users/:id corresponde a /users/42
  • O valor capturado aparece em params['id']
require 'sinatra'

get '/users/:id' do
  "User ID is #{params['id']}"
end

Vá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']}"
end

Parâmetros da string de consulta

Os valores da string de consulta após ? também vão para params.

  • /search?q=ruby fornece params['q'] == 'ruby'
  • Vários pares são separados por &
require 'sinatra'

get '/search' do
  "Searching for: #{params['q']}"
end

Trabalhando 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 fetch com 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']}"
end

Parâ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}"
end

Rotas 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}"
end

Validando parâmetros

Sempre valide e converta os parâmetros recebidos, pois eles chegam como cadeias de caracteres.

  • Use to_i ou Integer() 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'
end

Verificaçã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 :name no 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 redirect para 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

  1. Fundamentos do Sinatra
  2. Rotas e parâmetros
  3. APIs JSON
  4. Middleware e Rack
← Voltar para Ruby Academy