Sinatra Temelleri
Hafif web uygulamaları
Sinatra Temelleri, CoddyKit'te ücretsiz bir Ruby Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Ruby Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Ruby Academy kursu toplamda 4 dersten oluşur.
Sinatra Nedir?
Sinatra, Ruby ile en az çabayla web uygulamaları oluşturmak için kullanılan hafif bir DSL'dir.
- Rails'teki gibi ağır kurallar yoktur
- Rotaları doğrudan tek bir dosyada tanımlarsınız
- Küçük uygulamalar, API'ler ve prototipler için idealdir
HTTP fiillerini ve yollarını tanımlar, ardından bir yanıt gövdesi döndürürsünüz.
require 'sinatra'
get '/' do
'Hello from Sinatra!'
endSinatra'yı Kurma
Sinatra bir Ruby paketidir. Onu gem komutuyla veya bir Gemfile aracılığıyla kurarsınız.
gem install sinatra- Ya da bir Gemfile'a
gem 'sinatra'ekleyipbundle installkomutunu çalıştırın
Uygulamanızı ruby app.rb ile çalıştırın; uygulama varsayılan olarak 4567 numaralı bağlantı noktasında hizmet verir.
# Gemfile
source 'https://rubygems.org'
gem 'sinatra'
gem 'puma'İlk Rotanız
Bir rota, bir HTTP fiilini URL yolu ve bir blokla eşleştirir. Bloğun döndürdüğü değer, yanıt gövdesi olur.
get,post,put,deleteHTTP yöntemlerine karşılık gelir- Bloktaki son ifade istemciye gönderilir
require 'sinatra'
get '/hello' do
'Hello, world!'
end
get '/bye' do
'Goodbye!'
endHTML Döndürme
Döndürülen değer yalnızca bir dize olduğundan doğrudan ham HTML döndürebilirsiniz.
- Şablon motoru olmadan hızlı sayfalar oluşturmak için kullanışlıdır
- Gerçek uygulamalarda ERB veya HAML görünümlerini tercih edin
require 'sinatra'
get '/' do
'<h1>Welcome</h1><p>This is my Sinatra app.</p>'
endDüz Ruby'de Yanıt Modelleme
HTTP'yi bağlamadan önce, bir işleyicinin döndürdüğü değeri düz bir yöntem kullanarak modelleyebilirsiniz. Bu, bir rotanın çağıracağı mantıktır.
- İş mantığını rota bloklarının dışında tutun
- Kodu sunucu olmadan sınanabilir hâle getirir
def greeting(name)
"Hello, #{name}!"
end
puts greeting('Sinatra')HTTP Fiilleri
Sinatra, yaygın tüm HTTP fiillerini rota yöntemleri olarak destekler.
getverileri okurpostverileri oluştururput/patchverileri güncellerdeleteverileri kaldırır
require 'sinatra'
post '/users' do
'Creating a user'
end
delete '/users/:id' do
"Deleting user #{params['id']}"
endDurum Kodlarını Ayarlama
HTTP durum kodunu status yardımcısıyla denetlersiniz.
status 404Bulunamadı durumunu ayarlarstatus 201oluşturulmuş bir kaynağı belirtir- Varsayılan değer 200 OK'dir
require 'sinatra'
get '/missing' do
status 404
'Not found'
endset ile Yapılandırma
Sinatra, set, enable ve disable ile yapılandırılır.
set :port, 8080dinleme bağlantı noktasını değiştirirset :bind, '0.0.0.0'dış bağlantıları kabul ederenable :loggingistek günlüklerini etkinleştirir
require 'sinatra'
set :port, 8080
set :bind, '0.0.0.0'
get '/' do
'Configured app'
endbefore Filtreleri
before filtresi, eşleşen her istekten önce çalışır. Kimlik doğrulama veya içerik üst bilgileri gibi hazırlık işlemleri için idealdir.
- Rotalarla aynı bağlamda çalışır
paramsdeğerlerini ve yanıt üst bilgilerini okuyup değiştirebilir
require 'sinatra'
before do
content_type :json
end
get '/' do
'{"ok": true}'
endModüler Uygulamalar
Daha büyük projeler için Sinatra::Base sınıfından türeterek modüler stili kullanın.
- Birden çok uygulamayı birbirinden yalıtır
- Rack altında bağlamak daha kolaydır
- Uygulamayı el ile başlatmak için
run!çağrısını kullanın
require 'sinatra/base'
class MyApp < Sinatra::Base
get '/' do
'Modular Sinatra'
end
end
MyApp.run!Yönlendiriciyi Yerel Olarak Benzeştirme
Kavramı anlamak için Sinatra'nın yönlendirme mantığını basit bir karma dağıtıcısıyla taklit edebilirsiniz.
- Anahtarlar yollar, değerler ise işleyici yordamlarıdır
- Arama işlemi yanıt gövdesini döndürür
routes = {
'/' => -> { 'Home' },
'/about' => -> { 'About us' }
}
puts routes['/'].call
puts routes['/about'].callHızlı Kontrol
Sinatra temelleri konusundaki anlayışınızı sınayın.
Özet
Sinatra'nın temel unsurlarını öğrendiniz:
- Sinatra, paket olarak kurulan hafif bir web DSL'idir
- Rotalar bir HTTP fiilini bir yol ve blokla eşleştirir
- Bloğun döndürdüğü değer yanıt gövdesidir
- Denetim için
status,setvebeforefiltrelerini kullanın - Modüler uygulamalar
Sinatra::Basesınıfından türetilir
Sırada dinamik rotaları ve parametreleri işleyeceksiniz.
Sıkça Sorulan Sorular
“Sinatra Temelleri” dersi ücretsiz mi?
Evet — “Sinatra Temelleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Ruby Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Ruby Academy kursu toplamda 4 dersten oluşur.
“Sinatra Temelleri” dersinde ne öğreneceğim?
Hafif web uygulamaları Ruby Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Ruby Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Ruby Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Sinatra Temelleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Ruby Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Ruby Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Sinatra Temelleri
- Yollar ve Parametreler
- JSON API'leri
- Ara Katman Yazılımı ve Rack