API (Application Programming Interface – Uygulama Programlama Arayüzü), karmaşıklığı yazılım geliştiricilerden gizleyen, kodları düzenleyen ve bileşenleri yeniden kullanılabilir hale getiren bir mekanizmadır.
Bu yazımızda API’ dan bahsedeceğiz.
Bu Yazının İçeriği
API Nedir?
API, yazılım bileşeniyle olan etkileşimlerin bir özelliğidir.
Bu da örnek olarak şu anlama gelir. Bir arabanın bir yazılımı olduğunu hayal edin. Bu arabanın API’si arabanın neler yapabileceği hakkında bilgi içerir; hızlanma, frenleme, camları açma, vs. Ayrıca bunların nasıl yapabileceğine dair bilgiler de içerir.
Örneğin hızlanmak için ayağınızı gaz pedalına koyup itersiniz. API, ayağınızı gaza bastığınızda motorun içinde neler olduğunu açıklamak zorunda değildir.
Bu nedenle, içten yanmalı motorlu bir araba kullanmayı öğrendiyseniz, tamamen yeni bir dizi beceri öğrenmek zorunda kalmadan API sayesinde elektrikli bir arabayı rahatlıkla kullanabilirsiniz.
API’nin Tarihçesi Nedir?
API teriminin anlamı ilk başta, uygulama programları (AP – Application Programs) olarak bilinen, yalnızca son kullanıcıya dönük programlar için bir arayüz tanımladı.
Bugün, API terimi yalnızca uygulama programlama arayüzlerini değil, aynı zamanda birçok yazılım türünü ve hatta donanım arayüzlerini de tanımlamaktadır. API fikri, terimden çok daha eskidir.
İngiliz bilgisayar bilimcileri Wilkes ve Wheeler, 1940’larda EDSAC (Electronic Delay Storage Automatic Calculator) bilgisayarı için modüler yazılım kitaplıkları üzerinde çalıştı. Joshua Bloch, Wilkes ve Wheeler’ın API’yi “son zamanlarda icat ettiklerini”, çünkü icat edilmekten çok keşfedilen bir kavram olduğundan bahseder. “Uygulama Programı Arayüzü (Application Program Interface” terimi ilk olarak 1968’de bir AFIPS (American Federation of Information Processing Societies) konferansında sunulan uzak bilgisayar grafikleri için veri yapıları ve teknikleri adlı bir makalede kaydedilmiştir.
Click here to preview your posts with PRO themes ››
Terim, veri tabanları alanına C.J. Date tarafından “The Relational and Network Approaches: Comparison of the Application Programming Interface” adlı 1974 tarihli bir makalede tanıtıldı.
Bir API, veritabanı yönetim sistemleri için ANSI (American National Standards Institute)/SPARC (Standards Planning And Requirements Committee) yapısının bir parçası haline geldi. Bu yapı, uygulama programlama arayüzünü sorgu arayüzü gibi diğer arayüzlerden ayrı olarak ele aldı.
1970’lerdeki veritabanı uzmanları, bu farklı arayüzlerin birleştirilebileceğini gözlemlemişlerdir. Bu gözlem, yalnızca uygulama programlamayı değil, her tür programlamayı destekleyen API’lere yol açar.
1990’a gelindiğinde API, teknoloji uzmanı Carl Malamud tarafından basitçe “bir programcıya belirli görevleri yerine getirmek için sunulan bir dizi hizmet” olarak tanımlandı.
API’nin Türleri Nelerdir?
- Open API (diğer adıyla Public API) : Minimum kısıtlama ile geliştiriciler ve diğer kullanıcılar tarafından herkesin kullanımına açık API’lerdir. Kayıt, API Anahtarı veya OAuth kullanımını gerektirebilir veya tamamen açık olabilirler. Verilere veya hizmetlere erişmek için harici kullanıcılara odaklanırlar.
- Internal API (diğer adıyla Private API) : Harici kullanıcılardan gizlenir ve yalnızca dahili sistemler tarafından açığa çıkarılır. Internal API’ler, şirket dışındaki tüketim için değil, daha çok daha iyi üretkenlik ve hizmetlerin yeniden kullanımı için farklı dahili geliştirme ekiplerinde kullanılmak üzere tasarlanmıştır.
- Partner API : Stratejik iş ortaklarına veya stratejik iş ortakları tarafından sunulan API’lerdir. Herkese açık değildir ve bunlara erişmek için özel yetkilere ihtiyaçlar vardır. Open API’ler gibi, Partner API’ler de buzdağının görünen kısmıdır çünkü bunlar en görünür olanlardır ve şirket sınırlarının ötesinde iletişim kurmak için kullanılırlar.
- Composite API : Composite API’ler birden çok veri veya hizmet API’sini birleştiren API’lerdir. Bir API oluşturma aracının API düzenleme yetenekleri kullanılarak oluşturulurlar. Geliştiricilerin tek bir aramada birkaç uç noktaya erişmesine izin verir.
Click here to preview your posts with PRO themes ››
REST API ve SOAP API Nedir?
API, programların birbirleriyle nasıl iletişim kurduğunu belirleyen belirli bir dizi kural iken, REST ve SOAP API’ler, API’nin nasıl sunulacağını tanımlar.
Her biri işlevsellik açısından benzerdir ancak birkaç temel farklılıklarla birbirlerinden ayrılırlar.
REST (Representational State Transfer), geliştiricilerin bir API oluştururken izledikleri kurallar kümesidir. REST, JSON (JavaScript Object Notation) kullanılarak okunur. Bu kurallardan biri, API’nin kullanımı kolay ve geliştiriciler için anlamlı olacak şekilde tasarlanması gerektiğidir.
SOAP (Simple Object Access Protocol), web hizmetleri için başka bir tasarım modelidir. REST API’nin kullandığı tipik JSON yerine, XML (Extensible Markup Language) kullanır. XML, makine ve insan tarafından okunabilir şekilde tasarlanmıştır.
Remote API Nedir?
Remote API‘ler, bir iletişim ağı aracılığıyla etkileşim kuracak şekilde tasarlanmıştır.
“Remote” da API tarafından işlenen kaynakların istekte bulunan bilgisayarın dışında bir yerde olması demektir.
En yaygın kullanılan iletişim ağı internet olduğundan çoğu API web standartlarına göre tasarlanmıştır. Remote API’lerin tümü web API değildir, ancak web API’lerin Remote olduğunu söylemek doğru olur.
API’nın Geliştiricilere Katkıları Nelerdir?
iPhone için bir uygulama geliştirmek istediğinizi varsayalım. Apple’ın işletim sistemi, her işletim sisteminin yaptığı gibi, geliştirme sürecini kolaylaştırmak için çok sayıda API sağlar.
Örneğin, bir veya daha fazla web sayfasını göstermek için bir web tarayıcısı eklemek istiyorsanız, kendi web tarayıcınızı yalnızca uygulamanız için sıfırdan programlamanız gerekmez. Uygulamanıza bir WebKit (Safari) tarayıcı nesnesi yerleştirmek için WKWebView adında bir API kullanırsınız.
iPhone kamerasından fotoğraf veya video çekmek istiyorsanız kendi kamera arayüzünüzü yazmanız gerekmez. iPhone’un yerleşik kamerasını uygulamanıza yerleştirmek için kamera API’sini kullanırsınız. Bunu kolaylaştıracak API’ler olmasaydı, uygulama geliştiricilerinin kendi kamera yazılımlarını oluşturmaları ve kamera donanımının girdilerini dönüştürmeleri gerekirdi.
Click here to preview your posts with PRO themes ››
Bu her platform için geçerlidir. Örneğin, Windows’ta bir iletişim kutusu oluşturmak istediğinizde bunun için bir API vardır. Keza Android’de parmak izi kimlik doğrulamasını desteklemek istediğinizde de. Bu nedenle her farklı Android üreticisinin parmak izi sensörünü test etmeniz, deyim yerindeyse tekerleği defalarca yeniden icat etmeniz gerekmez :)
Bazı API Örnekleri
Birçoğu endüstri devlerinden olmak üzere, etkileşimde bulunabileceğiniz çok sayıda API vardır. Bazı platform şirketlerinin kodlarına bir API aracılığıyla programlı olarak erişme yeteneği onları aslında bir platform yapan şeydir. Bazı önemli API örnekleri şunlardır:
- Kodunuzu Haritalar’dan Çeviri’ye kadar tüm Google uygulamalarına bağlamanızı sağlayan Google API’leri. API’ler Google için çok önemli ve kritik olduğundan 2016’da önde gelen bir API yönetim platformu olan Apigee, Google tarafından satın alınmıştır.
- Facebook’un sosyal grafiğine ve pazarlama araçlarına programlı bir şekilde erişmenize olanak tanıyan Facebook API‘leri.
Sonuç Olarak
API, ticari faaliyetlerinizi hızlandırmanıza, markanızın erişimini artırmanıza, alışveriş yapan kişilerinizi istedikleri ürünlere bağlamanıza ve çok daha fazlasına yardımcı olabilecek güçlü bir araçtır.
API sayesinde yazılım geliştirmek artık daha kolay, ne dersiniz?