REST API Nedir?

REST, Representational State Transfer (Temsili Durum Transferi) kelimelerinin kısaltmasıdır ve dağıtık sistemlerdeki bileşenler arasındaki iletişimi sağlayan bir mimari stildir. REST API'leri, bu mimari stili izleyen ve istemcilerin kaynaklara (data) erişmesini ve bunları değiştirmesini sağlayan arayüzlerdir. Temel olarak, bir uygulamanın farklı parçalarının veya farklı uygulamaların birbirleriyle iletişim kurmasını sağlayan bir köprü görevi görürler. REST API'leri aşağıdaki temel prensiplere dayanır: * **Client-Server (İstemci-Sunucu):** İstemci ve sunucu rolleri ayrıdır. İstemci, kaynak talebinde bulunur; sunucu ise bu talebi karşılar. * **Stateless (Durumsuz):** Sunucu, istemci hakkında herhangi bir oturum bilgisi tutmaz. Her istek, istemcinin kimliğini ve gerekli tüm bilgileri içermelidir. Bu, sunucunun daha ölçeklenebilir olmasını sağlar. * **Cacheable (Önbelleklenebilir):** Cevaplar, istemci veya ara sunucular tarafından önbelleklenebilir olmalıdır. Bu, performansı artırır ve sunucu yükünü azaltır. * **Layered System (Katmanlı Sistem):** İstemci, sunucunun ara katmanlara sahip olup olmadığını bilmemelidir. Bu, esneklik ve ölçeklenebilirlik sağlar. * **Uniform Interface (Tekdüzen Arayüz):** En önemli prensiplerden biridir. Kaynaklara erişim için standart bir arayüz tanımlar. Bu arayüz genellikle aşağıdaki yöntemleri içerir: * **GET:** Kaynakları almak için kullanılır. * **POST:** Yeni kaynaklar oluşturmak için kullanılır. * **PUT:** Mevcut kaynakları güncellemek için kullanılır. * **DELETE:** Kaynakları silmek için kullanılır. * **PATCH:** Kaynakların bir kısmını güncellemek için kullanılır. 
 

Neden REST API Kullanmalıyız?

REST API'leri, modern web uygulamaları ve mobil uygulamalar için vazgeçilmezdir. İşte REST API kullanmanın bazı avantajları: * **Esneklik:** Farklı platformlardaki uygulamaların birbirleriyle kolayca iletişim kurmasını sağlar. Örneğin, bir mobil uygulama PHP ile yazılmış bir sunucu ile REST API üzerinden iletişim kurabilir. * **Ölçeklenebilirlik:** Durumsuz mimarisi sayesinde, sunucuların ölçeklenmesini kolaylaştırır. Her istek bağımsız olduğu için, sunucular arasında yük dengelemesi yapmak daha basittir. * **Kolay Entegrasyon:** Farklı sistemlerin birbirine entegre edilmesini kolaylaştırır. Örneğin, bir e-ticaret sitesi, ödeme işlemlerini gerçekleştirmek için bir ödeme gateway'i ile REST API üzerinden entegre olabilir. * **Standartlar:** HTTP protokolünü kullandığı için, yaygın olarak desteklenen ve anlaşılan bir standarttır. 
 

PHP ile Basit Bir REST API Yazımı

Şimdi, PHP ile basit bir REST API'yi nasıl oluşturabileceğimizi adım adım inceleyelim. Bu örnekte, basit bir "urunler" kaynağına erişim sağlayan bir API oluşturacağız. **1. Adım: Veritabanı Bağlantısı** Öncelikle, veritabanına bağlanmak için bir bağlantı dosyası oluşturalım. `db_connect.php` adında bir dosya oluşturun ve aşağıdaki kodu ekleyin:

connect_error) {
    die("Bağlantı hatası: " . $conn->connect_error);
}
?>

**Önemli:** `kullaniciadi`, `parola` ve `veritabaniadi` değerlerini kendi veritabanı bilgilerinizle değiştirin. **2. Adım: API Endpoint'i** `api.php` adında bir dosya oluşturun. Bu dosya, API isteklerini karşılayacak ve cevapları döndürecektir.

query($sql);

        $urunler = array();
        if ($result->num_rows > 0) {
            while($row = $result->fetch_assoc()) {
                $urunler[] = $row;
            }
        }

        echo json_encode($urunler);
        break;

    case 'POST':
        // Yeni ürün oluştur
        $urun_adi = $_POST['urun_adi'];
        $fiyat = $_POST['fiyat'];

        $sql = "INSERT INTO urunler (urun_adi, fiyat) VALUES ('$urun_adi', '$fiyat')";

        if ($conn->query($sql) === TRUE) {
            $response = array("message" => "Ürün başarıyla oluşturuldu.");
            echo json_encode($response);
        } else {
            $response = array("message" => "Hata: " . $conn->error);
            echo json_encode($response);
        }
        break;

    default:
        http_response_code(405); // Method Not Allowed
        echo json_encode(array("message" => "İzin verilmeyen metod."));
        break;
}

$conn->close();
?>

Bu kod, gelen HTTP metoduna göre farklı işlemler gerçekleştirir: * **GET:** `urunler` tablosundaki tüm ürünleri listeler ve JSON formatında döndürür. * **POST:** Gelen POST verilerini kullanarak yeni bir ürün oluşturur. * **Diğer Metodlar:** 405 (Method Not Allowed) hatası döndürür. **3. Adım: Veritabanı Tablosu Oluşturma** Veritabanınızda `urunler` adında bir tablo oluşturmanız gerekmektedir. Aşağıdaki SQL komutunu kullanarak tabloyu oluşturabilirsiniz:

CREATE TABLE urunler (
    id INT AUTO_INCREMENT PRIMARY KEY,
    urun_adi VARCHAR(255) NOT NULL,
    fiyat DECIMAL(10, 2) NOT NULL
);

**4. Adım: Test Etme** API'nizi test etmek için, bir REST istemci (örneğin, Postman) veya bir tarayıcı kullanabilirsiniz. * **GET isteği:** `http://localhost/api.php` adresine bir GET isteği göndererek tüm ürünleri listeleyebilirsiniz. * **POST isteği:** `http://localhost/api.php` adresine bir POST isteği göndererek yeni bir ürün oluşturabilirsiniz. POST isteği ile birlikte `urun_adi` ve `fiyat` parametrelerini göndermeniz gerekmektedir. 
 

Gelişmiş API Özellikleri

Yukarıdaki örnek, basit bir REST API'nin temelini oluşturur. Gerçek dünya uygulamalarında, daha gelişmiş özelliklere ihtiyaç duyabilirsiniz. İşte bazı örnekler: * **Kimlik Doğrulama (Authentication):** API'ye erişimi kısıtlamak için kimlik doğrulama mekanizmaları kullanabilirsiniz. Örneğin, API anahtarları veya OAuth gibi yöntemlerle yetkilendirme yapabilirsiniz. * **Validasyon (Validation):** Gelen verilerin doğru formatta ve beklenen değerlerde olduğundan emin olmak için validasyon kuralları uygulayabilirsiniz. Bu, API'nin güvenliğini artırır ve hatalı verilerin işlenmesini önler. * **Hata Yönetimi (Error Handling):** API'de oluşan hataları düzgün bir şekilde ele almak ve anlamlı hata mesajları döndürmek önemlidir. Bu, istemcilerin hataları anlamasına ve düzeltmesine yardımcı olur. * **Sürümleme (Versioning):** API'nizin farklı sürümlerini yönetmek, geriye dönük uyumluluğu sağlamak ve yeni özellikler eklemek için önemlidir. Örneğin, `v1/urunler` ve `v2/urunler` gibi farklı endpoint'ler kullanarak farklı sürümleri yönetebilirsiniz. * **Dokümantasyon (Documentation):** API'nizin nasıl kullanılacağını açıklayan kapsamlı bir dokümantasyon hazırlamak, geliştiricilerin API'nizi kolayca entegre etmesine yardımcı olur. Swagger veya OpenAPI gibi araçlar, API dokümantasyonu oluşturmayı kolaylaştırır. 
 

Sonuç

REST API'leri, modern web ve mobil uygulama geliştirmenin temel taşlarından biridir. Bu yazıda, REST API'lerinin ne olduğunu, neden kullanıldığını ve PHP ile basit bir REST API'nin nasıl oluşturulabileceğini öğrendik. Daha gelişmiş özellikler ekleyerek, daha karmaşık ve güçlü API'ler oluşturabilirsiniz. Unutmayın, iyi bir API, kullanıcı dostu, güvenli ve ölçeklenebilir olmalıdır.

Okunma Sayısı: 15

Bu yazıyı paylaş:
X