Özet - JSON ve API
json_encode, header ve HTTP yöntemleriyle basit bir kullanıcı API'si yazarsın.
Özet: veri biçimi ve API
Bu bölümde yapısal veri biçimiyle API yanıtı üretmeyi öğrendin. encode işlevi diziyi dizeye çevirir; UNESCAPED_UNICODE seçeneği Türkçe harfleri korur. decode işlevi dizeyi diziye geri çevirir; assoc=true ilişkisel dizi verir.
header işleviyle Content-Type başlığını ayarlarsın; REST kaynaklarını HTTP yöntemleriyle yönetirsin. Hataları last_error_msg ile yakalarsın. Şimdi tüm parçaları birleştirip basit bir API yanıtı üretelim.
Mini API: yönteme göre yanıt
Şimdi öğrendiklerini birleştir: bir $method değişkeni simüle edilmiş istek yöntemini tutsun. header ile Content-Type başlığını ayarla, sonra if ile yöntemi denetle. GET ise bir kaynağı encode ile dizeye çevirip yazdır.
Bu mini API'de başlık, yöntem dağıtımı ve veri biçimi dönüşümü bir arada gelir. Gerçek API'lerde $method yerine $_SERVER['REQUEST_METHOD'] kullanılır; akış aynıdır.
Uygulama Basit API yanıtı üret
Önce header ile Content-Type: application/... başlığını ayarla. Sonra if ($method === 'GET') ile yöntemi denetle ve blok içine echo encode(['id' => 1, 'name' => 'Ayşe'], UNESCAPED_UNICODE); yaz. $method değişkeni yukarıda zaten tanımlı.
Örnek çözümü göster
Önce header çağır, sonra if ile GET denetle, blok içinde echo encode çağır.
Örnek çözüm:
header('Content-Type: application/...');
if ($method === 'GET') {
echo encode(['id' => 1, 'name' => 'Ayşe'], UNESCAPED_UNICODE);
}
Kendini test et
-
API yanıtı üretirken hangi adım önce yapılır?
- Önce header ile Content-Type ayarlanır, sonra encode ile dize yazdırılır
- Önce encode çağrılır, sonra header ayarlanır
- Önce decode çağrılır, sonra header ayarlanır
- Sadece echo ile dize yazdırılır, header gerekmez
Cevabı göster
Önce header ile Content-Type ayarlanır, sonra encode ile dize yazdırılır — Doğru. header çıktıdan önce çağrılmalıdır; sonra encode ile dize yazdırılır.
-
Yöntem denetimi
$method = 'GET'; if ($method === '____') { echo encode(['id' => 1, 'name' => 'Ayşe'], UNESCAPED_UNICODE); }Cevabı göster
$method = 'GET'; if ($method === 'GET') { echo encode(['id' => 1, 'name' => 'Ayşe'], UNESCAPED_UNICODE); } -
Bölüm kavramlarını eşleştir
- json_encode
- diziyi dizeye çevirir
- json_decode
- dizeyi diziye çevirir
- header
- Content-Type ayarlar
- file_get_contents
- dosyadan veya URL'den okur