Rutas y parámetros
Gestione HTTP
Rutas y parámetros es una lección gratuita de Ruby Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ruby Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ruby Academy incluye 4 lecciones en total.
Gestionar solicitudes HTTP
Las aplicaciones web responden a las solicitudes haciendo coincidir rutas y leyendo parámetros.
- Los segmentos de la ruta pueden ser dinámicos
- Las cadenas de consulta transportan datos adicionales
- Los cuerpos de los formularios contienen los campos enviados
Sinatra expone todos estos datos mediante el hash params.
require 'sinatra'
get '/echo' do
params['msg'].to_s
endParámetros con nombre en las rutas
Los dos puntos en la ruta definen un parámetro con nombre que captura un segmento de la ruta.
/users/:idcoincide con/users/42- El valor capturado aparece en
params['id']
require 'sinatra'
get '/users/:id' do
"User ID is #{params['id']}"
endVarios parámetros
Una ruta puede tener varios parámetros con nombre.
- Cada segmento precedido por dos puntos se convierte en una clave de
params - El orden de la ruta no afecta al acceso
require 'sinatra'
get '/posts/:year/:month' do
"Posts from #{params['month']}/#{params['year']}"
endParámetros de la cadena de consulta
Los valores de la cadena de consulta que aparecen después de ? también se incorporan a params.
/search?q=rubyproduceparams['q'] == 'ruby'- Los pares múltiples se separan mediante
&
require 'sinatra'
get '/search' do
"Searching for: #{params['q']}"
endTrabajar con params como hash
El objeto params se comporta como un hash de Ruby. Practicar con un hash simple ayuda a comprender claramente estos patrones.
- Use
fetchcon un valor predeterminado para mayor seguridad - Por convención, las claves son cadenas
params = { 'name' => 'Ada', 'lang' => 'Ruby' }
puts params['name']
puts params.fetch('age', 'unknown')Datos de formulario con POST
En las solicitudes post, los campos del formulario enviado también aparecen en params.
- Sinatra analiza automáticamente el cuerpo de la solicitud
- El patrón de acceso es el mismo que para los parámetros de consulta
require 'sinatra'
post '/signup' do
"Welcome, #{params['username']}"
endParámetros splat
Un splat (*) coincide con cualquier cantidad de caracteres y los almacena en la matriz params['splat'].
/files/*captura el resto de la ruta- Varios splats producen varias entradas en la matriz
require 'sinatra'
get '/files/*' do
"Path: #{params['splat'].first}"
endRutas opcionales y con expresiones regulares
Las rutas pueden utilizar expresiones regulares para realizar coincidencias precisas.
- Las capturas están disponibles en
params['captures'] - Son útiles para restricciones como permitir únicamente identificadores numéricos
require 'sinatra'
get %r{/item/(\d+)} do
"Item #{params['captures'].first}"
endValidar parámetros
Siempre debe validar y convertir los parámetros recibidos, ya que llegan como cadenas.
- Use
to_ioInteger()para los números - Rechace los valores obligatorios ausentes con un error claro
def parse_id(raw)
id = Integer(raw)
raise 'must be positive' if id <= 0
id
end
puts parse_id('42')Valores predeterminados
Proporcione valores predeterminados razonables para los parámetros opcionales a fin de evitar errores por nil.
params.fetch('page', '1')- Combínelo con una conversión para implementar una paginación segura
params = { 'page' => nil }
page = (params['page'] || '1').to_i
puts "Page: #{page}"Redireccionar
Utilice redirect para enviar al cliente a otra URL.
- De forma predeterminada, emite un estado 302
- Es habitual después de enviar correctamente un formulario
require 'sinatra'
post '/login' do
redirect '/dashboard'
endComprobación rápida
Compruebe sus conocimientos sobre rutas y params.
Resumen
Aprendió cómo Sinatra gestiona la entrada:
- Los params con nombre utilizan
:nameen la ruta - Las cadenas de consulta y los campos de formulario también rellenan
params - Los splats y las rutas con expresiones regulares capturan rutas flexibles
- Valide y convierta siempre los params que llegan como cadenas
- Utilice
redirectpara mover a los clientes entre URL
A continuación, devolverá respuestas JSON estructuradas.
Preguntas frecuentes
¿La lección «Rutas y parámetros» es gratis?
Sí — el texto completo de «Rutas y parámetros» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ruby Academy, actualiza a CoddyKit PRO. El curso de Ruby Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Rutas y parámetros»?
Gestione HTTP Practicas Ruby Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Ruby Academy?
No se requiere experiencia previa. Ruby Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Rutas y parámetros»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Ruby Academy?
Sí. Cada lección de Ruby Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Conceptos básicos de Sinatra
- Rutas y parámetros
- APIs JSON
- Middleware y Rack