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!'
endMemasang Sinatra
Sinatra adalah sebuah paket. Anda memasangnya dengan perintah gem atau melalui Gemfile.
gem install sinatra- Atau tambahkan
gem 'sinatra'ke Gemfile dan jalankanbundle 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,deletedipetakan ke metode HTTP- Ekspresi terakhir dalam blok dikirim kepada klien
require 'sinatra'
get '/hello' do
'Hello, world!'
end
get '/bye' do
'Goodbye!'
endMengembalikan 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>'
endMemodelkan 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.
getmembaca datapostmembuat dataput/patchmemperbarui datadeletemenghapus data
require 'sinatra'
post '/users' do
'Creating a user'
end
delete '/users/:id' do
"Deleting user #{params['id']}"
endMenetapkan Kode Status
Anda mengendalikan kode status HTTP dengan pembantu status.
status 404menetapkan status Tidak Ditemukanstatus 201menandakan sumber daya yang baru dibuat- Nilai bawaannya adalah 200 OK
require 'sinatra'
get '/missing' do
status 404
'Not found'
endKonfigurasi dengan Pengaturan
Sinatra dikonfigurasi dengan set, enable, dan disable.
set :port, 8080mengubah port yang digunakan untuk menerima permintaanset :bind, '0.0.0.0'menerima koneksi eksternalenable :loggingmengaktifkan catatan permintaan
require 'sinatra'
set :port, 8080
set :bind, '0.0.0.0'
get '/' do
'Configured app'
endFilter 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
paramsserta header respons
require 'sinatra'
before do
content_type :json
end
get '/' do
'{"ok": true}'
endAplikasi 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'].callPemeriksaan 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, danbeforeuntuk 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
- Dasar-Dasar Sinatra
- Rute dan Parameter
- API JSON
- Middleware dan Rack