0Pricing
Ruby Academy · Ders

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

Sinatra'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' ekleyip bundle install komutunu ç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, delete HTTP yöntemlerine karşılık gelir
  • Bloktaki son ifade istemciye gönderilir
require 'sinatra'

get '/hello' do
  'Hello, world!'
end

get '/bye' do
  'Goodbye!'
end

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

Dü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.

  • get verileri okur
  • post verileri oluşturur
  • put/patch verileri günceller
  • delete verileri kaldırır
require 'sinatra'

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

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

Durum Kodlarını Ayarlama

HTTP durum kodunu status yardımcısıyla denetlersiniz.

  • status 404 Bulunamadı durumunu ayarlar
  • status 201 oluşturulmuş bir kaynağı belirtir
  • Varsayılan değer 200 OK'dir
require 'sinatra'

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

set ile Yapılandırma

Sinatra, set, enable ve disable ile yapılandırılır.

  • set :port, 8080 dinleme bağlantı noktasını değiştirir
  • set :bind, '0.0.0.0' dış bağlantıları kabul eder
  • enable :logging istek günlüklerini etkinleştirir
require 'sinatra'

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

get '/' do
  'Configured app'
end

before 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
  • params değerlerini ve yanıt üst bilgilerini okuyup değiştirebilir
require 'sinatra'

before do
  content_type :json
end

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

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

Hı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, set ve before filtrelerini kullanın
  • Modüler uygulamalar Sinatra::Base sı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

  1. Sinatra Temelleri
  2. Yollar ve Parametreler
  3. JSON API'leri
  4. Ara Katman Yazılımı ve Rack
← Ruby Academy Sayfasına Dön