0Pricing
Ruby Academy · Leçon

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!'
end

Installation 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écutez bundle 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, put et delete correspondent 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!'
end

Renvoyer 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>'
end

Modé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.

  • get lit les données
  • post crée des données
  • put/patch mettent à jour les données
  • delete supprime les données
require 'sinatra'

post '/users' do
  'Creating a user'
end

delete '/users/:id' do
  "Deleting user #{params['id']}"
end

Définir les codes d’état

Vous contrôlez le code d’état HTTP avec l’assistant status.

  • status 404 définit l’état « Introuvable »
  • status 201 signale la création d’une ressource
  • La valeur par défaut est 200 OK
require 'sinatra'

get '/missing' do
  status 404
  'Not found'
end

Configuration 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, 8080 modifie le port d’écoute
  • set :bind, '0.0.0.0' accepte les connexions externes
  • enable :logging active les journaux des requêtes
require 'sinatra'

set :port, 8080
set :bind, '0.0.0.0'

get '/' do
  'Configured app'
end

Filtres 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 params ainsi que les en-têtes de réponse
require 'sinatra'

before do
  content_type :json
end

get '/' do
  '{"ok": true}'
end

Applications 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'].call

Vé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, set et before pour 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

  1. Bases de Sinatra
  2. Routes et paramètres
  3. API JSON
  4. Intergiciel et Rack
← Retour à Ruby Academy