yeni bir yol, API nedir?
Selam, bugün başlangıç sürecini geride bırakarak işleri biraz daha karıştırmak adına sana iki yazılım bileşeninin belirli tanımlar ve protokoller aracılığıyla birbiriyle iletişim kurmasına olanak tanıyan bir mekanizma olan API’ler hakkında biraz bilgi vereceğim.
Açılımı Application Programming Interface, Türkçesi ise Uygulama Programlama Arabirimi anlamına gelen API’ler hakkında basit bir örnek verecek olursam eğer en aşina olduğunu düşündüğüm hava durumu uygularamına değinmem gerekir. Basitçe anlatacak olursam, meteoroloji müdürlüğünün yazılım sistemi, günlük hava durumu verilerini içerir. Telefonundaki hava durumu uygulaması, API’ler aracılığıyla bu sistemle “konuşur” ve sana günlük hava durumu güncellemelerini gösterir.
Peki bu mekanizma nasıl çalışır? API mimarisi genellikle istemci ve sunucu arasında çalışır(bkz: istemci-sunucu nedir?). İsteği gönderen uygulamaya istemci, yanıtı gönderen uygulamaya ise sunucu adı verilir. Yani hava durumu örneğinde, müdürlüğün hava durumu veritabanı bir sunucu iken, mobil uygulama ise bir istemcidir.
Çeşitlere değinelim sayın okur, bizi dört farklı seçenek karşılıyor. Kullanım olarak çeştli, diğer seçeneklere kıyasla daha kolay olan Rest API’lerden başlayalım. Bunlar günümüzde web’de bulunan en popüler ve esnek API’lerdir. İstemci, sunucuya isteklerini veri olarak gönderir. Sunucu bu istemci girdisini kullanarak dahili işlevleri başlatır ve çıktı verilerini tekrar istemciye gönderir. Hadi REST API’lerini daha ayrıntılı inceleyelim.
REST, Temsili Durum Aktarımı anlamına gelen Representational State Transfer ifadesinin kısaltmasıdır. REST, istemcilerin sunucu verilerine erişirken kullanabilmesi için GET, PUT, DELETE gibi belirli işlevler kullanır. İstemciler ve sunucular, HTTP üzerinden veri alışverişi yapar.
REST API’lerin ana özelliği durumsuz olmasıdır, bu sunucuların istekler arasında istemci verilerini kaydetmemesi anlamına gelir. İstemcinin sunucuya gönderdiği istekler, bir web sitesini ziyaret etmek için tarayıcına yazdığın URL’lere benzer. Gelen yanıt ise bir web sayfasında görmeye alışık olduğun grafikleri içermeyen sade verilerdir.
Diğer bir seçenek olan SOAP API’leri ise Basit Nesne Erişimi Protokolünü kullanır. İstemci ve sunucu, XML aracılığıyla mesaj alışverişi yapar. Bu, diğerlerine kıyasla pek esnek olmayan ve artık popülerliğini yitiren bir API’dir.
Üçüncü seçenek olarak WebSocket API’lerine değinmek istiyorum. WebSocket API’leri, verileri aktarmak için JSON nesneleri kullanan başka bir modern web API’si gelişimidir. Bir WebSocket API’si, istemci uygulamaları ile sunucu arasında iki yönlü iletişimi destekler. Sunucunun bağlı istemcilere geri arama mesajları gönderebilmesi nedeniyle REST API’lerinden daha verimlidir.
Son ve bana kalırsa kullanımı bakımından uzun yıllar daha göreceğimiz RPC API’lerine değinelim, Bu API’ler Uzak Prosedür Çağrıları olarak bilinir. İstemci, önce sunucu üzerinde bir işlevi (yani prosedürü) tamamlar ve ardından sunucu da çıktıyı istemciye gönderir.
Başka bir yazıda tekrar görüşmek üzere.
kendine iyi bak, iyi şanslar.