Sinatra-Grundlagen
Leichtgewichtige Web-Apps
Sinatra-Grundlagen ist eine kostenlose Ruby Academy-Lektion auf CoddyKit. Dies ist Lektion 1 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.
Was ist Sinatra?
Sinatra ist ein leichtgewichtiges DSL zum Erstellen von Webanwendungen in Ruby mit minimalem Aufwand.
- Keine umfangreichen Konventionen wie bei Rails
- Routen direkt in einer einzigen Datei definieren
- Ideal für kleine Apps, APIs und Prototypen
Sie beschreiben HTTP-Verben und Pfade und geben einen Antworttext zurück.
require 'sinatra'
get '/' do
'Hello from Sinatra!'
endSinatra installieren
Sinatra ist ein Gem. Sie installieren es mit dem Befehl gem oder über eine Gemfile.
gem install sinatra- Oder fügen Sie
gem 'sinatra'zu einer Gemfile hinzu und führen Siebundle installaus
Starten Sie Ihre App mit ruby app.rb; standardmäßig wird sie auf Port 4567 bereitgestellt.
# Gemfile
source 'https://rubygems.org'
gem 'sinatra'
gem 'puma'Ihre erste Route
Eine Route verknüpft ein HTTP-Verb mit einem URL-Pfad und einem Block. Der Rückgabewert des Blocks wird zum Antworttext.
get,post,putunddeletebilden HTTP-Methoden ab- Der letzte Ausdruck im Block wird an den Client gesendet
require 'sinatra'
get '/hello' do
'Hello, world!'
end
get '/bye' do
'Goodbye!'
endHTML zurückgeben
Da der Rückgabewert einfach eine Zeichenkette ist, können Sie direkt rohes HTML zurückgeben.
- Nützlich für schnelle Seiten ohne Template-Engine
- Für echte Apps sollten Sie ERB- oder HAML-Views bevorzugen
require 'sinatra'
get '/' do
'<h1>Welcome</h1><p>This is my Sinatra app.</p>'
endEine Antwort mit einfachem Ruby modellieren
Bevor Sie HTTP anbinden, können Sie mit einer einfachen Methode modellieren, was ein Handler zurückgibt. Diese Logik würde eine Route aufrufen.
- Halten Sie Geschäftslogik aus Routenblöcken heraus
- Dadurch lässt sich der Code ohne Server testen
def greeting(name)
"Hello, #{name}!"
end
puts greeting('Sinatra')HTTP-Verben
Sinatra unterstützt alle gängigen HTTP-Verben als Routenmethoden.
getliest Datenposterstellt Datenput/patchaktualisieren Datendeleteentfernt Daten
require 'sinatra'
post '/users' do
'Creating a user'
end
delete '/users/:id' do
"Deleting user #{params['id']}"
endStatuscodes setzen
Sie steuern den HTTP-Statuscode mit dem status-Helper.
status 404setzt den Status Not Foundstatus 201signalisiert eine erstellte Ressource- Standardmäßig wird 200 OK verwendet
require 'sinatra'
get '/missing' do
status 404
'Not found'
endKonfiguration mit set
Sinatra wird mit set, enable und disable konfiguriert.
set :port, 8080ändert den Port, an dem Verbindungen entgegengenommen werdenset :bind, '0.0.0.0'akzeptiert externe Verbindungenenable :loggingaktiviert Request-Logs
require 'sinatra'
set :port, 8080
set :bind, '0.0.0.0'
get '/' do
'Configured app'
endbefore-Filter
Ein before-Filter wird vor jeder passenden Anfrage ausgeführt. Er eignet sich ideal für vorbereitende Aufgaben wie Authentifizierung oder das Setzen von Content-Headern.
- Er läuft im selben Kontext wie die Routen
- Er kann
paramsund Response-Header lesen und ändern
require 'sinatra'
before do
content_type :json
end
get '/' do
'{"ok": true}'
endModulare Apps
Verwenden Sie für größere Projekte den modularen Stil, indem Sie Sinatra::Base erweitern.
- Hält mehrere Apps voneinander isoliert
- Lässt sich leichter unter Rack einbinden
- Rufen Sie
run!auf, um die App manuell zu starten
require 'sinatra/base'
class MyApp < Sinatra::Base
get '/' do
'Modular Sinatra'
end
end
MyApp.run!Einen Router lokal simulieren
Sie können Sinatras Routing-Logik mit einem einfachen Hash-Dispatcher nachbilden, um das Konzept zu verstehen.
- Schlüssel sind Pfade, Werte sind Handler-Procs
- Die Suche gibt den Antworttext zurück
routes = {
'/' => -> { 'Home' },
'/about' => -> { 'About us' }
}
puts routes['/'].call
puts routes['/about'].callSchnelltest
Testen Sie Ihr Verständnis der Grundlagen von Sinatra.
Zusammenfassung
Sie haben die Grundlagen von Sinatra gelernt:
- Sinatra ist ein leichtgewichtiges Web-DSL, das als Gem installiert wird
- Routen verknüpfen ein HTTP-Verb mit einem Pfad und einem Block
- Der Rückgabewert des Blocks ist der Antworttext
- Verwenden Sie die
status-,set- undbefore-Filter zur Steuerung - Modulare Apps erweitern
Sinatra::Base
Als Nächstes verarbeiten Sie dynamische Routen und params.
Häufig gestellte Fragen
Ist die Lektion „Sinatra-Grundlagen“ kostenlos?
Ja — der vollständige Text von „Sinatra-Grundlagen“ 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 „Sinatra-Grundlagen“?
Leichtgewichtige Web-Apps 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 1 von 4.
Wie lange dauert die Lektion „Sinatra-Grundlagen“?
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