Routes et paramètres
Gérez HTTP
Routes et paramètres est une leçon Ruby Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Ruby Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ruby Academy comprend 4 leçons au total.
Gérer les requêtes HTTP
Les applications web répondent aux requêtes en faisant correspondre des routes et en lisant des paramètres.
- Les segments de chemin peuvent être dynamiques
- Les chaînes de requête transportent des données supplémentaires
- Les corps de formulaires contiennent les champs envoyés
Sinatra expose tous ces éléments dans la table de hachage params.
require 'sinatra'
get '/echo' do
params['msg'].to_s
endParamètres de route nommés
Deux-points dans le chemin définit un paramètre nommé qui capture un segment de chemin.
/users/:idcorrespond à/users/42- La valeur capturée apparaît dans
params['id']
require 'sinatra'
get '/users/:id' do
"User ID is #{params['id']}"
endParamètres multiples
Une route peut comporter plusieurs paramètres nommés.
- Chaque segment précédé de deux-points devient une clé dans
params - L’ordre dans le chemin n’a pas d’importance pour y accéder
require 'sinatra'
get '/posts/:year/:month' do
"Posts from #{params['month']}/#{params['year']}"
endParamètres de chaîne de requête
Les valeurs de la chaîne de requête qui suivent ? sont également placées dans params.
/search?q=rubydonneparams['q'] == 'ruby'- Les paires multiples sont séparées par
&
require 'sinatra'
get '/search' do
"Searching for: #{params['q']}"
endManipuler les paramètres comme une table de hachage
L’objet des paramètres se comporte comme une table de hachage Ruby. S’exercer avec une table de hachage simple permet de clarifier les schémas.
- Utilisez
fetchavec une valeur par défaut pour plus de sécurité - Par convention, les clés sont des chaînes
params = { 'name' => 'Ada', 'lang' => 'Ruby' }
puts params['name']
puts params.fetch('age', 'unknown')Données de formulaire avec POST
Pour les requêtes post, les champs de formulaire envoyés apparaissent eux aussi dans params.
- Sinatra analyse automatiquement le corps de la requête
- Le mode d’accès est le même que pour les paramètres de requête
require 'sinatra'
post '/signup' do
"Welcome, #{params['username']}"
endParamètres d’expansion
Une expansion (*) correspond à un nombre quelconque de caractères et les stocke dans le tableau params['splat'].
/files/*capture le reste du chemin- Plusieurs expansions produisent plusieurs entrées dans le tableau
require 'sinatra'
get '/files/*' do
"Path: #{params['splat'].first}"
endRoutes facultatives et à expressions régulières
Les routes peuvent utiliser des expressions régulières pour effectuer des correspondances précises.
- Les captures sont disponibles dans
params['captures'] - Utile pour des contraintes telles que des identifiants exclusivement numériques
require 'sinatra'
get %r{/item/(\d+)} do
"Item #{params['captures'].first}"
endValider les paramètres
Vous devez toujours valider et convertir les paramètres reçus, puisqu’ils arrivent sous forme de chaînes.
- Utilisez
to_iouInteger()pour les nombres - Rejetez les valeurs obligatoires manquantes avec une erreur explicite
def parse_id(raw)
id = Integer(raw)
raise 'must be positive' if id <= 0
id
end
puts parse_id('42')Valeurs par défaut
Fournissez des valeurs par défaut raisonnables pour les paramètres facultatifs afin d’éviter les erreurs dues aux valeurs absentes.
params.fetch('page', '1')- Associez cette approche à une conversion pour obtenir une pagination sûre
params = { 'page' => nil }
page = (params['page'] || '1').to_i
puts "Page: #{page}"Redirections
Utilisez redirect pour envoyer le client vers une autre URL.
- Émet un état 302 par défaut
- Courant après l’envoi réussi d’un formulaire
require 'sinatra'
post '/login' do
redirect '/dashboard'
endVérification rapide
Vérifiez ce que vous savez des routes et des paramètres.
Récapitulatif
Vous avez appris comment Sinatra gère les entrées :
- Les paramètres nommés utilisent
:namedans le chemin - Les chaînes de requête et les champs de formulaire alimentent également les paramètres
- Les expansions et les routes à expressions régulières capturent des chemins flexibles
- Validez et convertissez toujours les paramètres sous forme de chaîne
- Utilisez
redirectpour déplacer les clients d’une URL à une autre
Vous allez maintenant renvoyer des réponses JSON structurées.
Questions Fréquemment Posées
La leçon « Routes et paramètres » est-elle gratuite ?
Oui — le texte complet de « Routes et paramètres » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Ruby Academy, passe à CoddyKit PRO. Le cours Ruby Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Routes et paramètres » ?
Gérez HTTP Tu pratiques Ruby Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Ruby Academy ?
Aucune expérience préalable n'est requise. Ruby Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Routes et paramètres » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Ruby Academy ?
Oui. Chaque leçon Ruby Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Bases de Sinatra
- Routes et paramètres
- API JSON
- Intergiciel et Rack