0Pricing
PHP Academy · Ders

API Yanıtlarını ve Hatalarını İşleme

HTTP durum kodlarını kontrol edin, hataları yönetin ve API yüklerini ayrıştırın.

API Yanıtlarını ve Hatalarını İşleme, CoddyKit'te ücretsiz bir PHP 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, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.

HTTP Durum Kodunu Denetleme

Yanıt gövdesini işlemeden önce her zaman HTTP durum kodunu denetleyin.

<?php
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($statusCode !== 200) {
    throw new RuntimeException("API error: HTTP $statusCode");
}

JSON Yanıtını Ayrıştırma

JSON gövdesinin kodunu çözün ve ayrıştırma hatalarını yönetin.

<?php
$body = curl_exec($ch);
$data = json_decode($body, true, 512, JSON_THROW_ON_ERROR);
// $data is now a PHP array

Hata Yanıtı Gövdeleri

API'ler, 4xx/5xx yanıtlarında bile hata ayrıntılarını çoğunlukla gövdede döndürür. Hatalarda gövdeyi her zaman ayrıştırıp günlük kaydına ekleyin.

<?php
if ($statusCode >= 400) {
    $err = json_decode($body, true);
    $msg = $err["message"] ?? "Unknown API error";
    throw new RuntimeException("API $statusCode: $msg");
}

cURL Aktarım Hataları

Ağ hataları (DNS başarısızlığı, zaman aşımı) HTTP hatalarından ayrıdır. Önce curl_errno() işlevini, ardından HTTP durumunu denetleyin.

<?php
if (curl_errno($ch)) {
    throw new RuntimeException("Transport error: ".curl_error($ch));
}

Bir Yardımcı İşlevle Sarmalama

cURL kurulumunu, yürütmeyi ve hata yönetimini yeniden kullanılabilir bir işlev içinde kapsülleyin.

<?php
function httpGet(string $url, string $token): array {
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER     => ["Authorization: Bearer $token"],
        CURLOPT_TIMEOUT        => 15,
    ]);
    $body   = curl_exec($ch);
    $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $errno  = curl_errno($ch);
    curl_close($ch);
    if ($errno) throw new RuntimeException(curl_strerror($errno));
    if ($status >= 400) throw new RuntimeException("HTTP $status");
    return json_decode($body, true, 512, JSON_THROW_ON_ERROR);
}

Yeniden Deneme Mantığı

Geçici hatalar (503 Service Unavailable, zaman aşımları) için yeniden deneme sınırıyla birlikte üstel geri çekilme uygulayın.

<?php
$maxRetries = 3;
for ($attempt = 0; $attempt < $maxRetries; $attempt++) {
    try {
        $data = httpGet($url, $token);
        break;
    } catch (RuntimeException $e) {
        if ($attempt === $maxRetries - 1) throw $e;
        sleep(2 ** $attempt);
    }
}

Hız Sınırlama Başlıkları

Birçok API, hız sınırlama başlıklarını içerir: X-RateLimit-Remaining ve X-RateLimit-Reset. Sınırlara ulaşmaktan kaçınmak için bunları okuyun.

<?php
curl_setopt($ch, CURLOPT_HEADER, true);
// Parse headers from the response string

Yanıtları Önbelleğe Alma

Gereksiz ağ çağrılarını önlemek için API yanıtlarını önbelleğe alın. Yanıtları, verilerin güncellik gereksinimine uygun bir TTL ile Redis veya APCu'da saklayın.

API Çağrılarını Günlüğe Kaydetme

Hata ayıklamayı kolaylaştırmak ve üretim ortamındaki API sağlığını izlemek için istek URL'sini, yöntemini, durum kodunu ve gecikmesini günlüğe kaydedin.

Hata Olarak Zaman Aşımları

Bir cURL zaman aşımı (CURLE_OPERATION_TIMEDOUT) aktarım hatasıdır, HTTP hatası değildir. Bunu açıkça yönetin.

SSL Sertifikası Hataları

Sertifika doğrulama başarısızlıkları (CURLE_SSL_CACERT), sunucu sertifikasına güvenilmediği anlamına gelir. CA paketinizi güncelleyin; doğrulamayı hiçbir zaman devre dışı bırakmayın.

Özet

Her zaman önce cURL hata numarasını, ardından HTTP durumunu denetleyin. Hata gövdelerini ayrıştırın. Mantığı yeniden kullanılabilir işlevlerle sarmalayın. Geçici başarısızlıklar için yeniden deneme uygulayın.

Hızlı Kontrol

Önce hangisini denetlemelisiniz: cURL hata numarasını mı, HTTP durumunu mu?

Sıkça Sorulan Sorular

“API Yanıtlarını ve Hatalarını İşleme” dersi ücretsiz mi?

Evet — “API Yanıtlarını ve Hatalarını İşleme” 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 PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.

“API Yanıtlarını ve Hatalarını İşleme” dersinde ne öğreneceğim?

HTTP durum kodlarını kontrol edin, hataları yönetin ve API yüklerini ayrıştırın. PHP 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.

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

Önceden deneyim gerekmez. CoddyKit'te PHP 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.

“API Yanıtlarını ve Hatalarını İşleme” 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 PHP Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her PHP 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. JSON Kodlama ve Kod Açma
  2. cURL ile HTTP İstekleri Gönderme
  3. API Yanıtlarını ve Hatalarını İşleme
  4. Basit Bir API İstemcisi Oluşturma
← PHP Academy Sayfasına Dön