0Pricing
Ruby Academy · Pelajaran

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
end

Parameter Rute Bernama

Tanda titik dua dalam jalur mendefinisikan parameter bernama yang menangkap satu segmen jalur.

  • /users/:id cocok dengan /users/42
  • Nilai yang ditangkap muncul dalam params['id']
require 'sinatra'

get '/users/:id' do
  "User ID is #{params['id']}"
end

Beberapa 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']}"
end

Parameter String Kueri

Nilai string kueri setelah ? juga masuk ke params.

  • /search?q=ruby menghasilkan params['q'] == 'ruby'
  • Beberapa pasangan dipisahkan oleh &
require 'sinatra'

get '/search' do
  "Searching for: #{params['q']}"
end

Bekerja dengan Parameter sebagai Hash

Objek params berperilaku seperti hash Ruby. Berlatih menggunakan hash biasa akan memperjelas pola-pola tersebut.

  • Gunakan fetch dengan 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']}"
end

Parameter 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}"
end

Rute 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}"
end

Memvalidasi Parameter

Selalu validasi dan konversi parameter yang masuk karena parameter tersebut diterima sebagai string.

  • Gunakan to_i atau Integer() 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'
end

Pemeriksaan Singkat

Periksa pemahaman Anda tentang rute dan parameter.

Ringkasan

Anda telah mempelajari cara Sinatra menangani masukan:

  • Parameter bernama menggunakan :name dalam 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 redirect untuk 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

  1. Dasar-Dasar Sinatra
  2. Rute dan Parameter
  3. API JSON
  4. Middleware dan Rack
← Kembali ke Ruby Academy