0Pricing
Ruby Academy · Ders

JSON API'leri

JSON döndürme

JSON API'leri, CoddyKit'te ücretsiz bir Ruby Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Ruby Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Ruby Academy kursu toplamda 4 dersten oluşur.

JSON API'leri Neden Kullanılır?

JSON, web API'leri için standart veri biçimidir. İstemciler HTML yerine yapılandırılmış veriler gönderip alır.

  • Dilden bağımsızdır
  • Ruby karmaları ve dizileriyle kolayca eşleşir
  • Hafif ve insanlar tarafından okunabilirdir

Ruby'nin standart kitaplığı JSON işlemlerini json modülü aracılığıyla gerçekleştirir.

require 'json'

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

Ruby'yi JSON'a Dönüştürme

Bir karma veya dizi üzerinde to_json çağırın ya da JSON.generate kullanın.

  • Semboller ve dizeler JSON anahtarlarına dönüşür
  • İç içe yapılar özyinelemeli olarak dönüştürülür
require 'json'

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

JSON'u Okunaklı Biçimde Yazdırma

Okunabilir bir çıktı için JSON.pretty_generate kullanın.

  • Girinti ve satır sonları ekler
  • Hata ayıklama ve günlükler için harikadır
  • Bayt tasarrufu sağlamak için üretim yanıtlarında kullanmaktan kaçının
require 'json'

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

JSON Girdisini Ayrıştırma

Gelen bir JSON dizesini Ruby nesnelerine dönüştürmek için JSON.parse kullanın.

  • Varsayılan olarak anahtarlar dizedir
  • Sembol anahtarları için symbolize_names: true geçirin
require 'json'

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

Sembol Anahtarları

Sembol anahtarlarını aramak kullanışlıdır ve biraz daha hızlıdır.

  • symbolize_names: true ile etkinleştirin
  • Güvenilmeyen girdilerin çok sayıda sembol oluşturmasına karşı dikkatli olun
require 'json'

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

Sinatra'dan JSON döndürme

Bir Sinatra rotasında içerik türünü ayarlayın ve bir JSON dizesi döndürün.

  • content_type :json üstbilgiyi ayarlar
  • hash.to_json'ı gövde olarak döndürün
require 'sinatra'
require 'json'

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

JSON İstek Gövdesini Okuma

POST API'leri için ham gövdeyi okuyup ayrıştırın.

  • request.body.read ham dizeyi verir
  • JSON.parse ile ayrıştırın
require 'sinatra'
require 'json'

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

API Yanıtı için Karma Oluşturma

Yanıtları tutarlı tutmak için serileştirmeden önce yapılandırılmış bir karma oluşturun.

  • Veriyi data anahtarının altına yerleştirin
  • Durumu ve üstveriyi dahil edin
require 'json'

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

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

Ayrıştırma Hatalarını Ele Alma

Bozuk JSON JSON::ParserError hatası oluşturur. Bunu her zaman yakalayıp işleyin.

  • İstemciye 400 Hatalı İstek yanıtı döndürün
  • Bir ayrıştırma hatasının uygulamayı çökertmesine asla izin vermeyin
require 'json'

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

Nesne Dizilerini Serileştirme

Koleksiyonlar JSON dizileri olarak doğal biçimde serileştirilir.

  • Karmalardan oluşan bir dizi, nesnelerden oluşan bir diziye dönüşür
  • Her kaydın biçimini oluşturmak için map kullanın
require 'json'

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

Nesnelerde Özel to_json

to_json veya as_json tanımlayarak bir sınıfa nasıl serileştirme yapacağını öğretebilirsiniz.

  • İç durumu düz bir karma yapısına dönüştürün
  • Özel alanları API'den gizleyin
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

Hızlı Kontrol

JSON API bilginizi doğrulayın.

Özet

JSON API'leri oluşturmayı öğrendiniz:

  • Standart kitaplıktan require 'json' kullanma
  • to_json / JSON.generate Ruby'yi JSON'a serileştirir
  • JSON.parse gelen JSON'ı Ruby nesnelerine dönüştürür
  • Sinatra rotalarında content_type :json ayarlayın
  • JSON::ParserError hatasını her zaman yakalayıp işleyin

Sonraki bölümde Rack'i ve ara yazılımı keşfedeceksiniz.

Sıkça Sorulan Sorular

“JSON API'leri” dersi ücretsiz mi?

Evet — “JSON API'leri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Ruby Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Ruby Academy kursu toplamda 4 dersten oluşur.

“JSON API'leri” dersinde ne öğreneceğim?

JSON döndürme Ruby Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Ruby Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Ruby Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“JSON API'leri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Ruby Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Ruby Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Sinatra Temelleri
  2. Yollar ve Parametreler
  3. JSON API'leri
  4. Ara Katman Yazılımı ve Rack
← Ruby Academy Sayfasına Dön