0Pricing
Ruby Academy · Pelajaran

API JSON

Kembalikan JSON.

API JSON adalah pelajaran Ruby Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.

Mengapa API JSON

JSON adalah format data standar untuk API web. Klien mengirim dan menerima data terstruktur, bukan HTML.

  • Tidak bergantung pada bahasa pemrograman
  • Memetakan dengan baik ke hash dan larik Ruby
  • Ringan dan mudah dibaca manusia

Pustaka standar Ruby menangani JSON melalui modul json.

require 'json'

data = { name: 'Ada', langs: ['Ruby', 'Python'] }
puts data.to_json

Mengonversi Ruby ke JSON

Panggil to_json pada hash atau larik, atau gunakan JSON.generate.

  • Simbol dan string menjadi kunci JSON
  • Struktur bersarang dikonversi secara rekursif
require 'json'

user = { id: 1, active: true, tags: ['admin'] }
puts JSON.generate(user)

Mencetak JSON dengan Rapi

Untuk keluaran yang mudah dibaca, gunakan JSON.pretty_generate.

  • Menambahkan indentasi dan baris baru
  • Sangat baik untuk penelusuran kesalahan dan catatan
  • Hindari dalam respons produksi untuk menghemat byte
require 'json'

config = { server: { host: 'localhost', port: 4567 } }
puts JSON.pretty_generate(config)

Mengurai Masukan JSON

Gunakan JSON.parse untuk mengubah string JSON yang masuk menjadi objek Ruby.

  • Secara bawaan, kunci berupa string
  • Teruskan symbolize_names: true untuk menggunakan kunci simbol
require 'json'

raw = '{"name": "Ada", "age": 30}'
data = JSON.parse(raw)
puts data['name']
puts data['age']

Kunci Simbol

Kunci simbol praktis dan sedikit lebih cepat untuk dicari.

  • Aktifkan dengan symbolize_names: true
  • Berhati-hatilah terhadap masukan tak tepercaya yang membuat banyak simbol
require 'json'

raw = '{"city": "Istanbul"}'
data = JSON.parse(raw, symbolize_names: true)
puts data[:city]

Mengembalikan JSON dari Sinatra

Dalam rute Sinatra, tetapkan jenis konten lalu kembalikan string JSON.

  • content_type :json menetapkan header
  • Kembalikan hash.to_json sebagai isi
require 'sinatra'
require 'json'

get '/api/status' do
  content_type :json
  { status: 'ok', time: Time.now.to_i }.to_json
end

Membaca Isi Permintaan JSON

Untuk API POST, baca isi mentah lalu uraikan.

  • request.body.read memberikan string mentah
  • Uraikan dengan JSON.parse
require 'sinatra'
require 'json'

post '/api/users' do
  payload = JSON.parse(request.body.read)
  content_type :json
  { created: payload['name'] }.to_json
end

Membangun Hash Respons API

Jaga konsistensi respons dengan membangun hash terstruktur sebelum melakukan serialisasi.

  • Bungkus data di bawah kunci data
  • Sertakan status dan metadata
require 'json'

def api_response(data, status: 'ok')
  { status: status, data: data }.to_json
end

puts api_response({ id: 1, name: 'Ada' })

Menangani Kesalahan Penguraian

JSON yang cacat akan memunculkan JSON::ParserError. Selalu tangani kesalahan tersebut.

  • Kembalikan respons 400 Permintaan Tidak Valid kepada klien
  • Jangan pernah membiarkan kesalahan penguraian menghentikan aplikasi
require 'json'

begin
  JSON.parse('{ broken')
rescue JSON::ParserError => e
  puts "Invalid JSON: #{e.message}"
end

Menserialisasi Larik Objek

Koleksi secara alami diserialisasi sebagai larik JSON.

  • Larik hash menjadi larik objek
  • Gunakan map untuk membentuk setiap rekaman
require 'json'

users = [{ id: 1, name: 'Ada' }, { id: 2, name: 'Bob' }]
output = users.map { |u| { name: u[:name] } }
puts output.to_json

to_json Kustom pada Objek

Anda dapat mengajarkan suatu kelas cara melakukan serialisasi dengan mendefinisikan to_json atau as_json.

  • Ubah keadaan internal menjadi hash biasa
  • Sembunyikan bidang privat dari API
require 'json'

class User
  def initialize(id, name)
    @id = id
    @name = name
  end

  def to_json(*)
    { id: @id, name: @name }.to_json
  end
end

puts User.new(1, 'Ada').to_json

Pemeriksaan Singkat

Konfirmasikan pengetahuan Anda tentang API JSON.

Ringkasan

Anda telah mempelajari cara membangun API JSON:

  • require 'json' dari pustaka standar
  • to_json / JSON.generate menserialisasi Ruby menjadi JSON
  • JSON.parse melakukan deserialisasi terhadap JSON yang masuk
  • Tetapkan content_type :json dalam rute Sinatra
  • Selalu tangani JSON::ParserError

Selanjutnya Anda akan menjelajahi Rack dan perangkat tengah.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “API JSON” gratis?

Ya — teks lengkap “API JSON” 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 “API JSON”?

Kembalikan JSON. 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 3 dari 4.

Berapa lama pelajaran “API JSON” 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