0Pricing
Ruby Academy · Lezione

Route e parametri

Gestire HTTP

Route e parametri è una lezione Ruby Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ruby Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ruby Academy include 4 lezioni in totale.

Gestire le richieste HTTP

Le app web rispondono alle richieste individuando le route e leggendo i parametri.

  • I segmenti del percorso possono essere dinamici
  • Le query string trasportano dati aggiuntivi
  • I body dei moduli trasportano i campi inviati

Sinatra espone tutti questi dati tramite l'hash params.

require 'sinatra'

get '/echo' do
  params['msg'].to_s
end

Parametri con nome nelle route

Un due punti nel percorso definisce un parametro con nome che cattura un segmento del percorso.

  • /users/:id corrisponde a /users/42
  • Il valore catturato compare in params['id']
require 'sinatra'

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

Parametri multipli

Una route può contenere diversi parametri con nome.

  • Ogni segmento preceduto da due punti diventa una chiave in params
  • L'ordine nel percorso non influisce sull'accesso ai valori
require 'sinatra'

get '/posts/:year/:month' do
  "Posts from #{params['month']}/#{params['year']}"
end

Parametri della query string

I valori della query string dopo ? finiscono anch'essi in params.

  • /search?q=ruby fornisce params['q'] == 'ruby'
  • Le coppie multiple sono separate da &
require 'sinatra'

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

Usare params come hash

L'oggetto params si comporta come un hash Ruby. Esercitarsi con un hash semplice rende chiari questi schemi.

  • Utilizzi fetch con un valore predefinito per maggiore sicurezza
  • Per convenzione, le chiavi sono stringhe
params = { 'name' => 'Ada', 'lang' => 'Ruby' }

puts params['name']
puts params.fetch('age', 'unknown')

Dati del modulo con POST

Nelle richieste post, anche i campi del modulo inviati compaiono in params.

  • Sinatra analizza automaticamente il body della richiesta
  • Lo schema di accesso è lo stesso dei parametri della query
require 'sinatra'

post '/signup' do
  "Welcome, #{params['username']}"
end

Parametri splat

Uno splat (*) corrisponde a un numero qualsiasi di caratteri e li memorizza nell'array params['splat'].

  • /files/* cattura il resto del percorso
  • Più splat producono più elementi nell'array
require 'sinatra'

get '/files/*' do
  "Path: #{params['splat'].first}"
end

Route opzionali ed espressioni regolari

Le route possono utilizzare espressioni regolari per una corrispondenza precisa.

  • Le catture sono disponibili in params['captures']
  • Sono utili per vincoli come consentire solo ID numerici
require 'sinatra'

get %r{/item/(\d+)} do
  "Item #{params['captures'].first}"
end

Convalidare i parametri

Convalidi e converta sempre i params in ingresso, poiché arrivano come stringhe.

  • Utilizzi to_i o Integer() per i numeri
  • Rifiuti i valori obbligatori mancanti con un errore chiaro
def parse_id(raw)
  id = Integer(raw)
  raise 'must be positive' if id <= 0
  id
end

puts parse_id('42')

Valori predefiniti

Fornisca valori predefiniti sensati per i params facoltativi, così da evitare errori causati da nil.

  • params.fetch('page', '1')
  • Combini la conversione per una paginazione sicura
params = { 'page' => nil }
page = (params['page'] || '1').to_i
puts "Page: #{page}"

Reindirizzamento

Utilizzi redirect per inviare il client a un altro URL.

  • Emette per impostazione predefinita uno stato 302
  • È comune dopo l'invio riuscito di un modulo
require 'sinatra'

post '/login' do
  redirect '/dashboard'
end

Verifica rapida

Verifichi ciò che sa sulle route e sui params.

Riepilogo

Ha imparato come Sinatra gestisce l'input:

  • I params con nome utilizzano :name nel percorso
  • Le query string e i campi dei moduli popolano anch'essi params
  • Gli splat e le route con espressioni regolari catturano percorsi flessibili
  • Convalidi e converta sempre i params stringa
  • Utilizzi redirect per spostare i client tra URL

Successivamente, restituirà risposte JSON strutturate.

Domande Frequenti

La lezione «Route e parametri» è gratuita?

Sì — il testo completo di «Route e parametri» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ruby Academy, passa a CoddyKit PRO. Il corso Ruby Academy include 4 lezioni in totale.

Cosa imparerò in «Route e parametri»?

Gestire HTTP Eserciti Ruby Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Ruby Academy?

Non è richiesta alcuna esperienza precedente. Ruby Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Route e parametri»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Ruby Academy?

Sì. Ogni lezione Ruby Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Basi di Sinatra
  2. Route e parametri
  3. API JSON
  4. Middleware e Rack
← Torna a Ruby Academy