Yollar ve Parametreler
HTTP'yi işleme
Yollar ve Parametreler, CoddyKit'te ücretsiz bir Ruby Academy dersidir. Bu, 4 dersinin 2. 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.
HTTP İsteklerini İşleme
Web uygulamaları, rotaları eşleştirip parametreleri okuyarak isteklere yanıt verir.
- Yol bölümleri dinamik olabilir
- Sorgu dizeleri ek veriler taşır
- Form gövdeleri gönderilen alanları taşır
Sinatra, bunların tümünü params karması aracılığıyla sunar.
require 'sinatra'
get '/echo' do
params['msg'].to_s
endAdlandırılmış Rota Parametreleri
Yoldaki iki nokta, bir yol bölümünü yakalayan adlandırılmış bir parametre tanımlar.
/users/:id,/users/42ile eşleşir- Yakalanan değer
params['id']içinde görünür
require 'sinatra'
get '/users/:id' do
"User ID is #{params['id']}"
endBirden Çok Parametre
Bir rotada birden çok adlandırılmış parametre bulunabilir.
- İki nokta içeren her bölüm,
paramsiçinde bir anahtara dönüşür - Yoldaki sıra, erişim açısından önemli değildir
require 'sinatra'
get '/posts/:year/:month' do
"Posts from #{params['month']}/#{params['year']}"
endSorgu Dizesi Parametreleri
Sorgu dizesindeki ? işaretinden sonraki değerler de params içine alınır.
/search?q=ruby,params['q'] == 'ruby'değerini verir- Birden çok çift
&ile ayrılır
require 'sinatra'
get '/search' do
"Searching for: #{params['q']}"
endparams ile Karma Olarak Çalışma
params nesnesi bir Ruby karması gibi davranır. Basit bir karmayla pratik yapmak kalıpları netleştirir.
- Güvenlik için varsayılan değerle birlikte
fetchkullanın - Gelenek gereği anahtarlar dizelerdir
params = { 'name' => 'Ada', 'lang' => 'Ruby' }
puts params['name']
puts params.fetch('age', 'unknown')POST ile Form Verileri
post isteklerinde gönderilen form alanları da params içinde görünür.
- Sinatra, istek gövdesini otomatik olarak ayrıştırır
- Sorgu parametreleriyle aynı erişim kalıbı kullanılır
require 'sinatra'
post '/signup' do
"Welcome, #{params['username']}"
endYıldız Parametreleri
Bir yıldız eşleşmesi (*) herhangi sayıda karakterle eşleşir ve bunları params['splat'] dizisinde saklar.
/files/*yolun geri kalanını yakalar- Birden çok yıldız eşleşmesi, dizide birden çok giriş oluşturur
require 'sinatra'
get '/files/*' do
"Path: #{params['splat'].first}"
endİsteğe Bağlı ve Düzenli İfade Rotaları
Rotalar, kesin eşleştirme için düzenli ifadeleri kullanabilir.
- Yakalanan değerler
params['captures']içinde kullanılabilir - Yalnızca sayısal kimlikler gibi kısıtlamalar için kullanışlıdır
require 'sinatra'
get %r{/item/(\d+)} do
"Item #{params['captures'].first}"
endParametreleri Doğrulama
Gelen parametreler dize olarak geldiğinden bunları her zaman doğrulayıp dönüştürün.
- Sayılar için
to_iveyaInteger()kullanın - Gerekli değerler eksikse bunu açık bir hatayla reddedin
def parse_id(raw)
id = Integer(raw)
raise 'must be positive' if id <= 0
id
end
puts parse_id('42')Varsayılan Değerler
Boş değer hatalarını önlemek için isteğe bağlı parametrelere makul varsayılanlar sağlayın.
params.fetch('page', '1')- Güvenli sayfalama için dönüştürmeyle birlikte kullanın
params = { 'page' => nil }
page = (params['page'] || '1').to_i
puts "Page: #{page}"Yeniden Yönlendirme
İstemciyi başka bir URL'ye göndermek için redirect kullanın.
- Varsayılan olarak 302 durumu gönderir
- Başarılı bir form gönderiminden sonra yaygın olarak kullanılır
require 'sinatra'
post '/login' do
redirect '/dashboard'
endHızlı Kontrol
Rotalar ve parametreler hakkında bildiklerinizi kontrol edin.
Özet
Sinatra'nın girdiyi nasıl işlediğini öğrendiniz:
- Adlandırılmış parametreler, yolda
:namekullanır - Sorgu dizeleri ve form alanları da
paramsdeğerini doldurur - Yıldız eşleşmeleri ve düzenli ifade rotaları esnek yolları yakalar
- Dize parametrelerini her zaman doğrulayıp dönüştürün
- İstemcileri URL'ler arasında taşımak için
redirectkullanın
Sırada yapılandırılmış JSON yanıtları döndüreceksiniz.
Sıkça Sorulan Sorular
“Yollar ve Parametreler” dersi ücretsiz mi?
Evet — “Yollar ve Parametreler” 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.
“Yollar ve Parametreler” dersinde ne öğreneceğim?
HTTP'yi işleme 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 2. dersidir.
“Yollar ve Parametreler” 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