Guzzle (HTTP İstemcisi)

artiframe add guzzle komutu, PHP'de dış API'lere (REST, SOAP, GraphQL) istek atmayı inanılmaz derecede kolaylaştıran guzzlehttp/guzzle paketini kurar. Native cURL fonksiyonlarının o uzun ve kafa karıştırıcı yapısından sizi kurtarır, modern ve akıcı bir yaklaşım sunar.

💡 Bilgilendirme: Direkt Kullanım
ArtiFrame, bu paket için src/Service klasörüne özel bir entegrasyon (Wrapper/Stub) sınıfı kopyalamaz. Kurulum yalnızca Composer üzerinden paketi projeye dahil eder. Aşağıdaki kodlar, paketin kendi orijinal işleyişini gösteren basit kullanım örnekleridir. Daha fazlası için Guzzle Dokümantasyonunu inceleyebilirsiniz.
Kurulum
terminal
$ artiframe add guzzle
Kullanım Örneği
ApiController.php
<?php

use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;

// 1. İstemciyi (Client) Oluştur
$client = new Client([
    'base_uri' => 'https://jsonplaceholder.typicode.com/',
    'timeout'  => 5.0, // 5 saniye içinde cevap gelmezse Exception fırlatır
]);

try {
    // 2. GET İsteği Atmak
    $response = $client->request('GET', 'users');
    
    // HTTP Status Code (Örn: 200)
    echo "Durum Kodu: " . $response->getStatusCode() . "<br>";
    
    // JSON yanıtı Array'e çevirmek
    $users = json_decode($response->getBody(), true);
    echo "İlk Kullanıcı: " . $users[0]['name'] . "<hr>";


    // 3. POST İsteği (JSON Body ve Header Göndermek)
    $postResponse = $client->request('POST', 'posts', [
        'headers' => [
            'Authorization' => 'Bearer SIZIN_API_TOKENINIZ',
            'Accept'        => 'application/json'
        ],
        'json' => [
            'title' => 'Guzzle Harika!',
            'body'  => 'ArtiFrame üzerinden test ediliyor.',
            'userId' => 1
        ]
    ]);

    echo "POST Başarılı! Dönen Cevap: <br>";
    echo $postResponse->getBody();

} catch (RequestException $e) {
    // Sunucu 404 veya 500 dönerse buraya düşer
    echo "API Hatası: " . $e->getMessage();
}