Rute dan Parameter
Tangani HTTP.
Rute dan Parameter adalah pelajaran Ruby Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Ruby Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Ruby Academy mencakup 4 pelajaran total.
Menangani Permintaan HTTP
Aplikasi web merespons permintaan dengan mencocokkan rute dan membaca parameter.
- Segmen jalur dapat bersifat dinamis
- String kueri membawa data tambahan
- Isi formulir membawa kolom yang dikirim
Sinatra menyediakan semua hal tersebut melalui hash params.
require 'sinatra'
get '/echo' do
params['msg'].to_s
endParameter Rute Bernama
Tanda titik dua dalam jalur mendefinisikan parameter bernama yang menangkap satu segmen jalur.
/users/:idcocok dengan/users/42- Nilai yang ditangkap muncul dalam
params['id']
require 'sinatra'
get '/users/:id' do
"User ID is #{params['id']}"
endBeberapa Parameter
Sebuah rute dapat memiliki beberapa parameter bernama.
- Setiap segmen bertanda titik dua menjadi kunci dalam
params - Urutan dalam jalur tidak memengaruhi cara mengaksesnya
require 'sinatra'
get '/posts/:year/:month' do
"Posts from #{params['month']}/#{params['year']}"
endParameter String Kueri
Nilai string kueri setelah ? juga masuk ke params.
/search?q=rubymenghasilkanparams['q'] == 'ruby'- Beberapa pasangan dipisahkan oleh
&
require 'sinatra'
get '/search' do
"Searching for: #{params['q']}"
endBekerja dengan Parameter sebagai Hash
Objek params berperilaku seperti hash Ruby. Berlatih menggunakan hash biasa akan memperjelas pola-pola tersebut.
- Gunakan
fetchdengan nilai bawaan demi keamanan - Kunci biasanya berupa string
params = { 'name' => 'Ada', 'lang' => 'Ruby' }
puts params['name']
puts params.fetch('age', 'unknown')Data Formulir dengan POST
Untuk permintaan post, kolom formulir yang dikirim juga muncul dalam params.
- Sinatra mengurai isi permintaan secara otomatis
- Pola aksesnya sama seperti parameter kueri
require 'sinatra'
post '/signup' do
"Welcome, #{params['username']}"
endParameter Penampung
Penampung (*) mencocokkan sejumlah karakter dan menyimpannya dalam larik params['splat'].
/files/*menangkap sisa jalur- Beberapa penampung menghasilkan beberapa entri larik
require 'sinatra'
get '/files/*' do
"Path: #{params['splat'].first}"
endRute Opsional dan Ekspresi Reguler
Rute dapat menggunakan ekspresi reguler untuk pencocokan yang tepat.
- Hasil tangkapan tersedia dalam
params['captures'] - Berguna untuk batasan seperti ID yang hanya berupa angka
require 'sinatra'
get %r{/item/(\d+)} do
"Item #{params['captures'].first}"
endMemvalidasi Parameter
Selalu validasi dan konversi parameter yang masuk karena parameter tersebut diterima sebagai string.
- Gunakan
to_iatauInteger()untuk angka - Tolak nilai wajib yang tidak ada dengan kesalahan yang jelas
def parse_id(raw)
id = Integer(raw)
raise 'must be positive' if id <= 0
id
end
puts parse_id('42')Nilai Bawaan
Sediakan nilai bawaan yang masuk akal untuk parameter opsional agar terhindar dari kesalahan nil.
params.fetch('page', '1')- Gabungkan dengan konversi untuk paginasi yang aman
params = { 'page' => nil }
page = (params['page'] || '1').to_i
puts "Page: #{page}"Pengalihan
Gunakan redirect untuk mengirim klien ke URL lain.
- Menghasilkan status 302 secara bawaan
- Umum digunakan setelah pengiriman formulir yang berhasil
require 'sinatra'
post '/login' do
redirect '/dashboard'
endPemeriksaan Singkat
Periksa pemahaman Anda tentang rute dan parameter.
Ringkasan
Anda telah mempelajari cara Sinatra menangani masukan:
- Parameter bernama menggunakan
:namedalam jalur - String kueri dan kolom formulir juga mengisi
params - Penampung dan rute ekspresi reguler menangkap jalur yang fleksibel
- Selalu validasi dan konversi parameter string
- Gunakan
redirectuntuk memindahkan klien antar-URL
Selanjutnya, Anda akan mengembalikan respons JSON terstruktur.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Rute dan Parameter” gratis?
Ya — teks lengkap “Rute dan Parameter” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Ruby Academy, upgrade ke CoddyKit PRO. Kursus Ruby Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Rute dan Parameter”?
Tangani HTTP. Kamu berlatih Ruby Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Ruby Academy?
Tidak diperlukan pengalaman sebelumnya. Ruby Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Rute dan Parameter” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Ruby Academy ini?
Ya. Setiap pelajaran Ruby Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Dasar-Dasar Sinatra
- Rute dan Parameter
- API JSON
- Middleware dan Rack