0Pricing
Ruby Academy · Pelajaran

Dasar-Dasar Sinatra

Aplikasi web ringan.

Dasar-Dasar Sinatra adalah pelajaran Ruby Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.

Apa Itu Sinatra

Sinatra adalah DSL ringan untuk membangun aplikasi web dengan Ruby secara sederhana.

  • Tidak memiliki konvensi berat seperti Rails
  • Menentukan rute secara langsung dalam satu berkas
  • Sempurna untuk aplikasi kecil, API, dan purwarupa

Anda menjelaskan verba HTTP dan jalur, lalu mengembalikan isi respons.

require 'sinatra'

get '/' do
  'Hello from Sinatra!'
end

Memasang Sinatra

Sinatra adalah sebuah paket. Anda memasangnya dengan perintah gem atau melalui Gemfile.

  • gem install sinatra
  • Atau tambahkan gem 'sinatra' ke Gemfile dan jalankan bundle install

Jalankan aplikasi Anda dengan ruby app.rb; aplikasi tersebut akan melayani permintaan pada port 4567 secara bawaan.

# Gemfile
source 'https://rubygems.org'
gem 'sinatra'
gem 'puma'

Rute Pertama Anda

Rute memasangkan verba HTTP dengan jalur URL dan sebuah blok. Nilai yang dikembalikan blok menjadi isi respons.

  • get, post, put, delete dipetakan ke metode HTTP
  • Ekspresi terakhir dalam blok dikirim kepada klien
require 'sinatra'

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

get '/bye' do
  'Goodbye!'
end

Mengembalikan HTML

Karena nilai yang dikembalikan hanyalah string, Anda dapat mengembalikan HTML mentah secara langsung.

  • Berguna untuk halaman singkat tanpa mesin templat
  • Untuk aplikasi nyata, gunakan tampilan ERB atau HAML
require 'sinatra'

get '/' do
  '<h1>Welcome</h1><p>This is my Sinatra app.</p>'
end

Memodelkan Respons dalam Ruby Biasa

Sebelum menghubungkan HTTP, Anda dapat memodelkan hasil yang dikembalikan penangan dengan metode biasa. Inilah logika yang akan dipanggil oleh sebuah rute.

  • Simpan logika bisnis di luar blok rute
  • Membuat kode dapat diuji tanpa server
def greeting(name)
  "Hello, #{name}!"
end

puts greeting('Sinatra')

Metode HTTP

Sinatra mendukung semua metode HTTP umum sebagai metode rute.

  • get membaca data
  • post membuat data
  • put/patch memperbarui data
  • delete menghapus data
require 'sinatra'

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

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

Menetapkan Kode Status

Anda mengendalikan kode status HTTP dengan pembantu status.

  • status 404 menetapkan status Tidak Ditemukan
  • status 201 menandakan sumber daya yang baru dibuat
  • Nilai bawaannya adalah 200 OK
require 'sinatra'

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

Konfigurasi dengan Pengaturan

Sinatra dikonfigurasi dengan set, enable, dan disable.

  • set :port, 8080 mengubah port yang digunakan untuk menerima permintaan
  • set :bind, '0.0.0.0' menerima koneksi eksternal
  • enable :logging mengaktifkan catatan permintaan
require 'sinatra'

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

get '/' do
  'Configured app'
end

Filter Sebelum

Filter sebelum dijalankan sebelum setiap permintaan yang cocok. Filter ini ideal untuk persiapan seperti autentikasi atau header konten.

  • Dijalankan dalam konteks yang sama dengan rute
  • Dapat membaca dan mengubah params serta header respons
require 'sinatra'

before do
  content_type :json
end

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

Aplikasi Modular

Untuk proyek yang lebih besar, gunakan gaya modular dengan membuat subkelas dari Sinatra::Base.

  • Menjaga beberapa aplikasi tetap terisolasi
  • Lebih mudah dipasang di bawah Rack
  • Panggil run! untuk memulainya secara manual
require 'sinatra/base'

class MyApp < Sinatra::Base
  get '/' do
    'Modular Sinatra'
  end
end

MyApp.run!

Mensimulasikan Perute Secara Lokal

Anda dapat meniru logika perutean Sinatra dengan pengarah hash sederhana untuk memahami konsepnya.

  • Kunci berupa jalur, sedangkan nilainya berupa prosedur penanganan
  • Pencarian menghasilkan isi respons
routes = {
  '/' => -> { 'Home' },
  '/about' => -> { 'About us' }
}

puts routes['/'].call
puts routes['/about'].call

Pemeriksaan Singkat

Uji pemahaman Anda tentang dasar-dasar Sinatra.

Ringkasan

Anda telah mempelajari dasar-dasar Sinatra:

  • Sinatra adalah DSL web ringan yang dipasang sebagai paket
  • Rute memasangkan verba HTTP dengan jalur dan blok
  • Nilai yang dikembalikan blok menjadi isi respons
  • Gunakan filter status, set, dan before untuk mengendalikan perilaku
  • Aplikasi modular membuat subkelas dari Sinatra::Base

Selanjutnya, Anda akan menangani rute dinamis dan parameter.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Dasar-Dasar Sinatra” gratis?

Ya — teks lengkap “Dasar-Dasar Sinatra” 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 “Dasar-Dasar Sinatra”?

Aplikasi web ringan. 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 1 dari 4.

Berapa lama pelajaran “Dasar-Dasar Sinatra” 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