API Nedir? Yazılımcı Gözüyle Basit Anlatım
Yazılım dünyasında sıkça duyduğun API kavramını, istemci-sunucu ilişkisini, REST mimarisini ve JSON veri yapısını detaylıca öğren.
Yowa Admin · · 3 dk okuma

Finansal Terimlerle Karıştırmayın
Günlük hayatta "API" kısaltması finans sektöründe farklı anlamlarda kullanılabilirken, yazılım dünyasında bu ifade tamamen başka bir teknik altyapıyı temsil eder. Yazılım bağlamında API, uygulama programlama arayüzü anlamına gelir ve farklı sistemlerin birbirleriyle güvenli ve düzenli bir şekilde konuşmasını sağlar. Finansal piyasalardaki varlık veya getiri oranlarıyla hiçbir bağı yoktur. Bu yapı, tamamen programların birbirine veri aktarması ve komut göndermesi için tasarlanmış kurallar bütünüdür.
İstemci ve Sunucu Mimarisi
Modern web uygulamaları ve mobil yazılımlar genellikle istemci-sunucu (client-server) modeli üzerine kurulur. İstemci, kullanıcının doğrudan etkileşime geçtiği arayüzdür. Bu bir tarayıcıda çalışan JavaScript kodu veya akıllı telefonundaki mobil uygulama olabilir. Sunucu ise arka planda çalışan, verileri depolayan, işleyen ve büyük hesaplamaları yapan güçlü bilgisayar sistemidir.
İstemci ile sunucu doğrudan birbiriyle rastgele konuşmaz. İstemci, veriye ihtiyaç duyduğunda sunucuya belirli kurallar çerçevesinde bir talepte bulunur. Sunucu bu talebi alır, inceler, veritabanından gerekli bilgileri toplar ve istemciye geri gönderir. İşte bu iki bağımsız yazılım bileşeninin birbirini anlamasını ve veri alışverişi yapmasını sağlayan köprü, API yapısıdır.
HTTP İstek ve Yanıt Döngüsü
İstemci ve sunucu arasındaki iletişim, genellikle HTTP protokolü üzerinden gerçekleşir. Bir API'ye istek (request) gönderdiğinde, bu isteğin bir yönü ve amacı vardır. Sunucu bu isteği işler ve bir yanıt (response) döndürür.
HTTP protokolünün temel metotları şunlardır:
- GET: Sunucudan veri istemek için kullanılır.
- POST: Sunucuya yeni veri göndermek ve kaydetmek için kullanılır.
- PUT: Sunucudaki mevcut bir veriyi tamamen güncellemek için kullanılır.
- DELETE: Sunucudaki bir veriyi silmek için kullanılır.
Her istek bir adres (URL) üzerinden yapılır. Örneğin hava durumu sağlayan bir servise bağlanırken adres çubuğuna benzer bir yol belirtilir.
REST Nedir?
REST (Representational State Transfer), web servisleri geliştirmek için kullanılan popüler bir mimari stildir. REST mimarisine uygun olarak tasarlanan API'lere REST API denir. REST, belirli kurallar ve kısıtlamalar getirerek sistemlerin daha hızlı, ölçeklenebilir ve anlaşılır olmasını sağlar.
REST mimarisinin temel özellikleri şunlardır:
- İstemci ve sunucu birbirinden bağımsızdır (stateless). Sunucu, istemcinin önceki isteklerine ait durumu hafızasında tutmaz.
- Veriler genellikle JSON formatında taşınır.
- HTTP metotları standartlara uygun olarak kullanılır.
- Kaynaklar (resources) URL'ler üzerinden temsil edilir.
JSON Veri Formatı
Geçmişte sistemler arası veri alışverişinde XML gibi karmaşık formatlar kullanılırken, günümüzde standart haline gelen format JSON (JavaScript Object Notation) olmuştur. JSON, hem insanlar tarafından kolayca okunabilen hem de makineler tarafından hızlıca işlenebilen hafif bir veri değişim formatıdır.
JSON yapısı anahtar-değer (key-value) çiftlerinden oluşur. Süslü parantezler nesneleri, köşeli parantezler ise dizileri ifade eder. Aşağıda örnek bir kullanıcı verisini içeren JSON objesi yer almaktadır:
{
"id": 42,
"ad": "Ahmet",
"rol": "Yazılımcı",
"aktif": true,
"yetenekler": ["JavaScript", "Python", "API"]
}
Bu veri yapısı, farklı programlama dilleri arasında kolayca dönüştürülebilir. Örneğin Python ile yazılmış bir sunucu bu veriyi üretip gönderebilir, JavaScript ile yazılmış bir istemci ise bunu doğrudan okuyabilir.
Örnek Bir İstek ve Yanıt Senaryosu
Bir e-ticaret uygulamasında ürün listesi çektiğinizi hayal edin. İstemci tarafında çalışan kod, ürünleri getirmek için sunucuya bir GET isteği atar.
İstek adresi:
GET /api/urunler HTTP/1.1
Host: api.ornekdukkan.com
Sunucu bu isteği alır, veritabanından ürünleri sorgular ve aşağıdaki JSON yanıtını geri döndürür:
{
"durum": "basarili",
"toplam": 2,
"veri": [
{
"id": 1,
"isim": "Klavye",
"fiyat": 750
},
{
"id": 2,
"isim": "Mouse",
"fiyat": 350
}
]
}
İstemci bu yanıtı aldıktan sonra JSON verisini işler ve ekranda kullanıcıya şık bir liste olarak gösterir.
Görüşmek üzere.


