Bases de Sinatra
Applications web légères
Bases de Sinatra est une leçon Ruby Academy gratuite sur CoddyKit. Ceci est la leçon 1 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.
Qu’est-ce que Sinatra ?
Sinatra est une DSL légère permettant de créer des applications web en Ruby avec un minimum d’effort.
- Pas de conventions lourdes comme dans Rails
- Définition directe des routes dans un seul fichier
- Parfait pour les petites applications, les API et les prototypes
Vous décrivez les verbes et les chemins HTTP, puis renvoyez un corps de réponse.
require 'sinatra'
get '/' do
'Hello from Sinatra!'
endInstallation de Sinatra
Sinatra est une gemme. Vous l’installez avec la commande gem ou par l’intermédiaire d’un Gemfile.
gem install sinatra- Ou ajoutez
gem 'sinatra'à un Gemfile, puis exécutezbundle install
Lancez votre application avec ruby app.rb ; elle écoute par défaut sur le port 4567.
# Gemfile
source 'https://rubygems.org'
gem 'sinatra'
gem 'puma'Votre première route
Une route associe un verbe HTTP à un chemin URL et à un bloc. La valeur renvoyée par le bloc devient le corps de la réponse.
get,post,putetdeletecorrespondent aux méthodes HTTP- La dernière expression du bloc est envoyée au client
require 'sinatra'
get '/hello' do
'Hello, world!'
end
get '/bye' do
'Goodbye!'
endRenvoyer du HTML
Comme la valeur renvoyée n’est qu’une chaîne, vous pouvez renvoyer directement du HTML brut.
- Utile pour créer rapidement des pages sans moteur de gabarits
- Pour les véritables applications, préférez les vues ERB ou HAML
require 'sinatra'
get '/' do
'<h1>Welcome</h1><p>This is my Sinatra app.</p>'
endModéliser une réponse en Ruby simple
Avant de connecter HTTP, vous pouvez modéliser ce qu’un gestionnaire renvoie au moyen d’une simple méthode. C’est la logique qu’une route appellerait.
- Gardez la logique métier en dehors des blocs de routes
- Le code peut ainsi être testé sans serveur
def greeting(name)
"Hello, #{name}!"
end
puts greeting('Sinatra')Verbes HTTP
Sinatra prend en charge tous les verbes HTTP courants sous forme de méthodes de route.
getlit les donnéespostcrée des donnéesput/patchmettent à jour les donnéesdeletesupprime les données
require 'sinatra'
post '/users' do
'Creating a user'
end
delete '/users/:id' do
"Deleting user #{params['id']}"
endDéfinir les codes d’état
Vous contrôlez le code d’état HTTP avec l’assistant status.
status 404définit l’état « Introuvable »status 201signale la création d’une ressource- La valeur par défaut est 200 OK
require 'sinatra'
get '/missing' do
status 404
'Not found'
endConfiguration avec la méthode de définition
Sinatra se configure avec les méthodes de définition, d’activation et de désactivation.
set :port, 8080modifie le port d’écouteset :bind, '0.0.0.0'accepte les connexions externesenable :loggingactive les journaux des requêtes
require 'sinatra'
set :port, 8080
set :bind, '0.0.0.0'
get '/' do
'Configured app'
endFiltres préalables
Un filtre préalable s’exécute avant chaque requête correspondante. Il est idéal pour effectuer des préparatifs comme l’authentification ou la définition des en-têtes de contenu.
- Il s’exécute dans le même contexte que les routes
- Il peut lire et modifier les
paramsainsi que les en-têtes de réponse
require 'sinatra'
before do
content_type :json
end
get '/' do
'{"ok": true}'
endApplications modulaires
Pour les projets plus importants, utilisez le style modulaire en créant une sous-classe de Sinatra::Base.
- Il maintient plusieurs applications isolées
- Il est plus facile de les monter sous Rack
- Appelez
run!pour la démarrer manuellement
require 'sinatra/base'
class MyApp < Sinatra::Base
get '/' do
'Modular Sinatra'
end
end
MyApp.run!Simuler un routeur localement
Vous pouvez imiter la logique de routage de Sinatra avec un simple répartiteur fondé sur une table de hachage afin d’en comprendre le concept.
- Les clés sont des chemins et les valeurs, des procédures de traitement
- La recherche renvoie le corps de la réponse
routes = {
'/' => -> { 'Home' },
'/about' => -> { 'About us' }
}
puts routes['/'].call
puts routes['/about'].callVérification rapide
Vérifiez votre compréhension des notions fondamentales de Sinatra.
Récapitulatif
Vous avez appris les notions essentielles de Sinatra :
- Sinatra est une DSL web légère installée comme gemme
- Les routes associent un verbe HTTP à un chemin et à un bloc
- La valeur renvoyée par le bloc constitue le corps de la réponse
- Utilisez les filtres
status,setetbeforepour contrôler le comportement - Les applications modulaires dérivent de
Sinatra::Base
Vous allez maintenant gérer les routes dynamiques et les paramètres.
Questions Fréquemment Posées
La leçon « Bases de Sinatra » est-elle gratuite ?
Oui — le texte complet de « Bases de Sinatra » 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 « Bases de Sinatra » ?
Applications web légères 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 1 sur 4.
Combien de temps prend la leçon « Bases de Sinatra » ?
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