Yazılımın Ortak Dili: API ve REST API Rehberi
Yazılımın Ortak Dili: API ve REST API Rehberi
Günümüz dijital dünyasında kullandığımız hiçbir uygulama tek başına izole bir ada gibi çalışmıyor. Telefonunuzdaki hava durumu widget'ından, bir e-ticaret sitesinde kredi kartıyla ödeme yapmanıza kadar her dijital temas noktasında arka planda çalışan görünmez köprüler bulunur. Bu köprülerin adı API'dir.
Modern web mimarisinin belkemiği haline gelen API kavramını ve onun en yaygın standardı olan REST API'yi derinlemesine inceleyelim.
1. API Nedir?
API (Application Programming Interface - Uygulama Programlama Arayüzü), farklı yazılımların veya sistemlerin birbiriyle güvenli ve standart bir şekilde iletişim kurmasını, veri alışverişi yapmasını sağlayan bir dizi kural, protokol ve araç bütünüdür.
En popüler analojiyle API, bir restorandaki garsona benzer:
- Müşteri (İstemci / Client): Menüden bir yemek seçip sipariş verir.
- Mutfak (Sunucu / Server): Siparişi hazırlar ve yemeği üretir.
- Garson (API): Müşterinin talebini mutfağa iletir, mutfakta hazırlanan yemeği alıp masaya geri getirir. Müşterinin mutfağa bizzat girip aşçının nasıl çalıştığını bilmesine gerek yoktur; garson aradaki iletişimi kusursuzca yönetir.
API Neden Kullanılır?
- Tekrarı Önler: Her geliştirici sıfırdan harita servisi ya da ödeme altyapısı kodlamak zorunda kalmaz (örneğin Google Maps API veya Stripe API).
- Güvenlik Sağlar: Sunucunun tüm veritabanı dış dünyaya açılmaz; sadece API'nin izin verdiği uç noktalar (endpoints) üzerinden kontrollü veri erişimi sunulur.
- Platform Bağımsızlığı: Bir web uygulaması, iOS uygulaması ve Android uygulaması aynı API backend'ine bağlanarak ortak veriyi tüketebilir.
2. REST API Nedir?
API bir kavram ve genel bir terimken; REST (Representational State Transfer), ağ üzerindeki sistemlerin haberleşmesinde kullanılan bir mimari tarz ve kurallar kümesidir.
Bu mimariye ve kurallara uygun olarak tasarlanmış API'lere ise REST API (veya RESTful API) denir. REST API'ler istemci ile sunucu arasında veri taşımak için standart HTTP protokolünü kullanır ve verileri çoğunlukla JSON (bazen XML) formatında transfer eder.
Temel HTTP Metotları (CRUD İşlemleri)
REST mimarisi, kaynaklar (resources) üzerinde yapılacak işlemleri standart HTTP fiilleriyle eşleştirir:
| HTTP Metodu | Karşılık Gelen CRUD İşlemi | Açıklama | Örnek Uç Nokta (Endpoint) |
|---|---|---|---|
| GET | Read (Okuma) | Kaynağı veya kaynak listesini getirir. | GET /api/articles/42 |
| POST | Create (Oluşturma) | Sunucuya yeni bir kaynak ekler. | POST /api/articles |
| PUT | Update (Tam Güncelleme) | Belirtilen kaynağın tamamını günceller/üzerine yazar. | PUT /api/articles/42 |
| PATCH | Update (Kısmi Güncelleme) | Kaynağın sadece belirli alanlarını günceller. | PATCH /api/articles/42 |
| DELETE | Delete (Silme) | Belirtilen kaynağı sunucudan siler. | DELETE /api/articles/42 |
3. REST API'nin Temel Prensipleri
Bir API'nin gerçek anlamda RESTful sayılabilmesi için belirli tasarım ilkelerine uyması gerekir:
- İstemci-Sunucu Ayrımı (Client-Server Architecture): Kullanıcı arayüzü (frontend) ile veri katmanı/iş mantığı (backend) tamamen birbirinden bağımsızdır. Frontend değişse bile backend API aynı kalabilir.
- Durumsuzluk (Statelessness): Sunucu, istemciye ait oturum bilgisini hafızasında tutmaz. İstemciden gelen her istek (request), sunucunun o isteği anlaması için gereken tüm bilgiyi (örneğin yetkilendirme token'ı, parametreler) içinde barındırmalıdır.
- Önbelleklenebilirlik (Cacheability): Sunucudan dönen yanıtlar önbelleklenebilir (cacheable) olarak işaretlenebilir; bu da performansı artırır ve sunucu yükünü hafifletir.
- Katmanlı Sistem (Layered System): İstemci, doğrudan ana sunucuya mı yoksa arada bir proxy, güvenlik duvarı veya yük dengeleyiciye mi bağlandığını bilmek zorunda değildir.
- Tekdüze Arayüz (Uniform Interface): Kaynaklar URL'ler üzerinden mantıklı ve tutarlı bir hiyerarşiyle adlandırılır (örn.
/api/v1/users/5/orders).
4. API ile REST API Arasındaki Fark Nedir?
- API genel bir şemsiyedir: İşletim sistemi API'leri (Windows Win32), programlama dili kütüphaneleri (Java Collections API), donanım API'leri veya SOAP/GraphQL gibi ağ API'lerinin tamamı birer API'dir.
- REST API ise spesifik bir yaklaşımdır: Web üzerinde HTTP protokolü, durumsuzluk prensibi ve kaynak odaklı URL yapıları kullanarak çalışan standartlaştırılmış bir web servis tipidir.
Modern yazılım geliştirmede REST API, basitliği, hafifliği (JSON kullanımı sayesinde) ve geniş araç desteği nedeniyle günümüzde web ve mobil uygulamaların en çok tercih ettiği haberleşme standardı konumundadır.

