API'ler, verilere ve diğer uygulamaların, hizmetlerin veya işletim sisteminin özelliklerine erişen uygulamaların oluşturulmasına izin veren bir dizi işlev ve prosedürdür.
Wikipedia'ya göre, “API, bir yazılımın başka bir yazılımda tanımlanmış işlevlerini kullanabilmesi için oluşturulmuş bir tanım bütünüdür. ”
Peki, tam olarak bir API nedir?
Bir uygulama programlama arayüzü (API), programcıların yazılım oluşturmalarına yardımcı olmak için kullanabilecekleri bir araç setidir. Basitçe söylemek gerekirse, bir API yazılım bileşenlerinin nasıl etkileşime girmesi gerektiğini belirtir.
Konsepti daha ayrıntılı bir şekilde tanımlamak için, temelleri anlamanız gerekir. Bir restoran menüsünün favori analojisiyle başlayalım. Yemek için bir restorana gittiğinizde, menüdeki seçimden seçim yapın.
Bu noktadan itibaren seçimlerinizi garsona iletirsiniz. Daha sonra seçimlerinizi şefe götürür, yemeğinizi hazırlar ve güzel bir yemek için size geri döner. Bu noktadan sonra, kendinize sorabilirsiniz, şefinizin balık veya bifteğinizde ne kullandığını biliyor musunuz? Nasıl hazırlandı? Bu ileri geri analoji, bu açıklama için bir başlangıç noktasıdır.
Çünkü bir API ile restorandaki sahnelerin gerisinde neler olduğunu gerçekten bilmiyorsunuz. Tek bildiğiniz yemek siparişinizi verdiğiniz, işlendiği ve akşam yemeğinin güzel bir tabağa çıktığı.
Gerçek dünyadan bir örnek
Gerçek dünyadan bir örnek, çevrimiçi sinema bileti satın alıyor. Sinema sitesine gidersiniz, filminizi, adınızı ve kredi kartı bilgilerinizi girersiniz ve bakıp biletlerinizi yazdırırsınız. Peki, biletinizi almak için bilgilerinizi girme arasında neler oluyor? API'ler, işte bu!
API'ler Geliştiriciler İçin Hayatı Kolaylaştırır
Bir iPhone için uygulama geliştirmek istediğinizi varsayalım. Apple'ın iOS işletim sistemi, işleri kolaylaştırmak için diğer tüm işletim sistemlerinde olduğu gibi çok sayıda API sunar.
Örneğin, bir veya daha fazla web sayfasını göstermek için bir web tarayıcısı yerleştirmek istiyorsanız, kendi web tarayıcınızı sadece uygulamanız için sıfırdan programlamanız gerekmez. WebKit (Safari) tarayıcı nesnesini uygulamanıza yerleştirmek için WKWebView API'sini kullanmanız yeterlidir.
İPhone'un kamerasından fotoğraf veya video çekmek istiyorsanız, kendi kamera arayüzünüzü yazmanıza gerek yoktur. İPhone'un dahili kamerasını uygulamanıza yerleştirmek için kamera API'sini kullanabilirsiniz.
Bunu kolaylaştırmak için API'ler mevcut değilse, uygulama geliştiriciler kendi kamera yazılımlarını oluşturmak ve kamera donanımının girdilerini yorumlamak zorunda kalacaklardı. Ancak Apple'ın işletim sistemi geliştiricileri tüm bu zor işleri yaptılar; böylece geliştiriciler bir kamera yerleştirmek için kamera API'sini kullanabilir ve ardından uygulamalarını oluşturmaya devam edebilirler. Ayrıca, Apple kamera API'sini geliştirdiğinde, ona bağlı olan tüm uygulamalar otomatik olarak bu geliştirmeden faydalanacaktır.Bu her platform için geçerlidir.
Örneğin, Windows'ta bir iletişim kutusu oluşturmak ister misiniz?
Bunun için bir API var. Android'de parmak izi kimlik doğrulamasını desteklemek ister misiniz? Bunun için de bir API var, bu nedenle her Android üreticisinin parmak izi sensörünü test etmeniz gerekmez. Geliştiriciler tekerleği tekrar tekrar icat etmek zorunda kalmazlar.
API'ler Kaynaklara Erişimi Kontrol Ediyor
API'ler ayrıca bir uygulamanın kullanım iznine sahip olmayabileceği donanım cihazlarına ve yazılım işlevlerine erişimi kontrol etmek için kullanılır. Bu yüzden API'ler genellikle güvenlikte büyük rol oynar.
API'ler Servisler Arası İletişimde Kullanılıyor
API'ler, her türlü başka nedenlerle de kullanılır. Örneğin, bir web sitesine gömülü bir Google Haritalar nesnesi gördüyseniz, söz konusu web sitesi bu haritayı yerleştirmek için Google Haritalar API’sını kullanıyor.
Google, bunun gibi API'leri web geliştiricilerine sunar; bu sayede geliştiriciler API'leri doğrudan web sitelerinde karmaşık nesneleri yerleştirmek için kullanabilir.
Bunun gibi API'ler mevcut değilse, geliştiricilerin bir web sitesine küçük bir etkileşimli harita koymak için kendi haritalarını oluşturmak ve kendi harita verilerini sağlamak zorunda kalırlardı.