CodeBlanks Logo Icon CodeBlanks

Özet - JSON ve API

PHP kursu · İleri seviye · Ders 54/92

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

  1. 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.

  2. 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);
    }
  3. 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

İleri seviye bölümündeki tüm dersler