Routen und Parameter
HTTP verarbeiten
Routen und Parameter ist eine kostenlose Ruby Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ruby Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.
HTTP-Anfragen verarbeiten
Web-Apps beantworten Anfragen, indem sie passende Routen finden und Parameter auslesen.
- Pfadsegmente können dynamisch sein
- Query-Strings übertragen zusätzliche Daten
- Formularinhalte enthalten übermittelte Felder
Sinatra stellt all diese Daten über den params-Hash bereit.
require 'sinatra'
get '/echo' do
params['msg'].to_s
endBenannte Routenparameter
Ein Doppelpunkt im Pfad definiert einen benannten Parameter, der ein Pfadsegment erfasst.
/users/:identspricht/users/42- Der erfasste Wert steht in
params['id']
require 'sinatra'
get '/users/:id' do
"User ID is #{params['id']}"
endMehrere Parameter
Eine Route kann mehrere benannte Parameter enthalten.
- Jedes Segment mit Doppelpunkt wird zu einem Schlüssel in
params - Die Reihenfolge im Pfad spielt beim Zugriff keine Rolle
require 'sinatra'
get '/posts/:year/:month' do
"Posts from #{params['month']}/#{params['year']}"
endQuery-String-Parameter
Werte im Query-String nach ? landen ebenfalls in params.
/search?q=rubyliefertparams['q'] == 'ruby'- Mehrere Paare werden durch
&getrennt
require 'sinatra'
get '/search' do
"Searching for: #{params['q']}"
endMit params als Hash arbeiten
Das Objekt params verhält sich wie ein Ruby-Hash. Das Üben mit einem einfachen Hash macht die Muster verständlich.
- Verwenden Sie
fetchmit einem Standardwert, um sicher zu arbeiten - Schlüssel sind konventionsgemäß Zeichenketten
params = { 'name' => 'Ada', 'lang' => 'Ruby' }
puts params['name']
puts params.fetch('age', 'unknown')Formulardaten mit POST
Bei post-Anfragen erscheinen übermittelte Formularfelder ebenfalls in params.
- Sinatra analysiert den Anfrage-Body automatisch
- Es gilt dasselbe Zugriffsmuster wie bei Query-Parametern
require 'sinatra'
post '/signup' do
"Welcome, #{params['username']}"
endSplat-Parameter
Ein Splat (*) entspricht einer beliebigen Anzahl von Zeichen und speichert sie im Array params['splat'].
/files/*erfasst den restlichen Pfad- Mehrere Splats erzeugen mehrere Array-Einträge
require 'sinatra'
get '/files/*' do
"Path: #{params['splat'].first}"
endOptionale und Regex-Routen
Routen können reguläre Ausdrücke für eine präzise Übereinstimmung verwenden.
- Erfassungen sind in
params['captures']verfügbar - Nützlich für Einschränkungen wie ausschließlich numerische IDs
require 'sinatra'
get %r{/item/(\d+)} do
"Item #{params['captures'].first}"
endParameter validieren
Sie sollten eingehende params immer validieren und konvertieren, da sie als Zeichenketten ankommen.
- Verwenden Sie
to_ioderInteger()für Zahlen - Lehnen Sie fehlende erforderliche Werte mit einer verständlichen Fehlermeldung ab
def parse_id(raw)
id = Integer(raw)
raise 'must be positive' if id <= 0
id
end
puts parse_id('42')Standardwerte
Geben Sie sinnvolle Standardwerte für optionale params an, um nil-Fehler zu vermeiden.
params.fetch('page', '1')- Kombinieren Sie dies für eine sichere Seitennavigation mit einer Konvertierung
params = { 'page' => nil }
page = (params['page'] || '1').to_i
puts "Page: #{page}"Weiterleiten
Verwenden Sie redirect, um den Client an eine andere URL weiterzuleiten.
- Standardmäßig wird der Status 302 ausgegeben
- Üblich nach dem erfolgreichen Absenden eines Formulars
require 'sinatra'
post '/login' do
redirect '/dashboard'
endSchnelltest
Überprüfen Sie Ihr Wissen über Routen und params.
Zusammenfassung
Sie haben gelernt, wie Sinatra Eingaben verarbeitet:
- Benannte params verwenden
:nameim Pfad - Query-Strings und Formularfelder füllen ebenfalls
params - Splats und Regex-Routen erfassen flexible Pfade
- Validieren und konvertieren Sie String-Parameter immer
- Verwenden Sie
redirect, um Clients zwischen URLs weiterzuleiten
Als Nächstes geben Sie strukturierte JSON-Antworten zurück.
Häufig gestellte Fragen
Ist die Lektion „Routen und Parameter“ kostenlos?
Ja — der vollständige Text von „Routen und Parameter“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ruby Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Routen und Parameter“?
HTTP verarbeiten Du übst Ruby Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Ruby Academy zu starten?
Keine Vorkenntnisse erforderlich. Ruby Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Routen und Parameter“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Ruby Academy-Lektion Code schreiben und ausführen?
Ja. Jede Ruby Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Sinatra-Grundlagen
- Routen und Parameter
- JSON-APIs
- Middleware und Rack