PHP ile API Sorguları: GET, POST, PUT ve DELETE İstekleri

PHP

PHP ile API sorgusu yapmak için file_get_contents() veya cURL kullanabilirsiniz.

file_get_contents() Fonksiyonu ile sorgu yapmak için:

<?php
$url = 'https://example.com/api';
$data = file_get_contents($url);
print_r(json_decode($data));
?>

cURL ile sorgu yapmak için:

<?php
$url = 'https://example.com/api';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
print_r(json_decode($data));
?>

Bu örneklerde, https://example.com/api adresinde bir API sorgusu yapılmış ve dönen veri json_decode() fonksiyonu ile PHP dizisine dönüştürülmüştür. Dönen veriyi kullanmak için, json_decode() fonksiyonunun döndürdüğü dizi içinde gezinmeniz gerekir.

Ek olarak, API sorgularını yaparken GET, POST, PUT ve DELETE gibi HTTP istek türlerini de kullanabilirsiniz. Örneğin, bir kayıt oluşturmak için POST, bir kaydı güncellemek için PUT ve bir kaydı silmek için DELETE gibi. Bu istek türlerini kullanmak için cURL kullanmanız gerekir.

<?php
$url = 'https://example.com/api';
$data = array("name" => "John Doe", "age" => "35");
$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => http_build_query($data),
    ),
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) { /* Handle error */ }
var_dump($result);
?>

Bu kod örneğinde, bir POST isteği yapılmış ve isteğe ait bilgiler Content-type: application/x-www-form-urlencoded ve http_build_query($data) ile gönderilmiştir.

API sorgularını yaparken, genellikle API belgelerinde belirtilen parametreleri ve başlıkları kullanmanız gerekir. Bu nedenle, API belgelerine dikkatli bir şekilde bakmanız ve gerektiğinde, API sağlayıcısı ile iletişime geçmeniz önerilir.

API Kullanımı Esnasında GET , PUT , POST , DELETE Örnekleri

HTTP istek türleri arasında en yaygın olarak kullanılanlar GET, POST, PUT ve DELETE’dir.

  • GET: Sunucudan veri almak için kullanılan istek türüdür. Örneğin, bir web sayfasının içeriğini almak için kullanılır.
<?php
$url = 'https://example.com/api';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
$data = curl_exec($ch);
curl_close($ch);
print_r(json_decode($data));
?>
  • POST: Sunucuya veri göndermek için kullanılan istek türüdür. Örneğin, bir kayıt oluşturmak için kullanılır.
    <?php
    $url = 'https://example.com/api';
    $data = array("name" => "John Doe", "age" => "35");
    $options = array(
        'http' => array(
            'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
            'method'  => 'POST',
            'content' => http_build_query($data),
        ),
    );
    $context  = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    if ($result === FALSE) { /* Handle error */ }
    var_dump($result);
    ?>
    
  • PUT: Sunucudaki bir kaydı güncellemek için kullanılan istek türüdür. Örneğin, bir kaydın bilgilerini değiştirmek için kullanılır.
    <?php
    $url = 'https://example.com/api';
    $data = array("name" => "Jane Smith", "age" => "40");
    $options = array(
        'http' => array(
            'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
            'method'  => 'PUT',
            'content' => http_build_query($data),
        ),
    );
    $context  = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    if ($result === FALSE) { /* Handle error */ }
    var_dump($result);
    ?>
    
  • DELETE: Sunucudaki bir kaydı silmek için kullanılan istek türüdür. Örneğin, bir kaydı sistemden kaldırmak için kullanılır.
    <?php
    $url = 'https://example.com/api/123';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);
    print_r($response);
    ?>
    

    Bu kod örneğinde, https://example.com/api/123 adresinde bulunan kaydı silmek için DELETE isteği yapılmıştır. İstek yapıldıktan sonra, sunucudan dönen cevap curl_exec() ile alınır ve ekrana print_r() ile yazdırılır.

    Ancak, unutmayın ki DELETE işlemi geri alınamaz, dolayısıyla kullanmadan önce dikkatli olmalısınız. Bu nedenle, örnek olarak yaptığımız örnekte gerçek bir api adresi kullanmadım.

    Ayrıca, API sorgularını yaparken, genellikle API belgelerinde belirtilen parametreleri ve başlıkları kullanmanız gerekir. Bu nedenle, API belgelerine dikkatli bir şekilde bakmanız ve gerektiğinde, API sağlayıcısı ile iletişime geçmeniz önerilir.

Yorum Ekle