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_jsonRuby'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: truegeç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: trueile 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 ayarlarhash.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
endJSON İstek Gövdesini Okuma
POST API'leri için ham gövdeyi okuyup ayrıştırın.
request.body.readham dizeyi verirJSON.parseile 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
endAPI 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
dataanahtarı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}"
endNesne 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
mapkullanın
require 'json'
users = [{ id: 1, name: 'Ada' }, { id: 2, name: 'Bob' }]
output = users.map { |u| { name: u[:name] } }
puts output.to_jsonNesnelerde Ö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_jsonHızlı Kontrol
JSON API bilginizi doğrulayın.
Özet
JSON API'leri oluşturmayı öğrendiniz:
- Standart kitaplıktan
require 'json'kullanma to_json/JSON.generateRuby'yi JSON'a serileştirirJSON.parsegelen JSON'ı Ruby nesnelerine dönüştürür- Sinatra rotalarında
content_type :jsonayarlayın JSON::ParserErrorhatası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.