API Nedir?
API Nedir?
API, Application Programming Interface olarak ifade edilen yapının baş harflerinden oluşan bir terimdir. Oldukça yeni gibi görünse de API temelleri 1940’lı yıllara dayanmaktadır. Tamamen ihtiyaçlar üzerine şekillenen modüler yazılımın bir parçası olarak 1968 yılında bir makale ile adından ilk defa bahsettirdi. Peki, Application Programming Interface Nedir? Teorik olarak anlatmak gerekirse; kendine özgü veri ve prensiplere sahip olan, süreçleri hızlandırarak gereksiz code complexity’i yansıtmayan, uygulamaların birbirleri ile iletişim halinde olmasını sağlayan bir mimari çözümdür.
API Ne işe yarar sorusuna gerçek hayattan bir örnek ile cevap vermek gerekirse: Bir restorana gittiğinizde masada genellikle bir menü görürsünüz, bu menüden istediğiniz yemekleri ve içecekleri garsona iletirsiniz. Garson ise sizden aldığı sipariş bilgilerini mutfağa iletir. Sipariş mutfakta hazırlandıktan sonra garson bu ürünleri mutfaktan alır ve sizin masanıza getirir. Bu sürece baktığımızda, garson sipariş bilgilerini mutfağa yani sisteme ne yapacağını söyleyen bir habercidir, yani API diyebiliriz.
API kullanım amaçlarına göre türlere ayrılmaktadır:
• Open API ve Public API: Open API, bir anahtar (Key) ile yetkilendirilen uygulamalar tarafından kullanılabilir bir yapıya sahipken, Public API tüm uygulamalara açık bir yapıya sahiptir.
• Internal API ve Private API: Internal API dahili sistemlerde kullanılmaktadır. Private ise her kullanıcıya açılmayan, özel API’lardır.
• Partner API: Birden fazla kullanıcı bulunmaktadır. Open API ve Private API birleşimi diyebiliriz.
• Composite API: Bir veya birden fazla veri/servis API arayüzlerinin birleşimi diyebiliriz.
Uygulamalar, genellikle kendi üzerinde bulunmayan bilgilere ulaşmak istediğinde, bu bilgilere sahip olan uygulamalar ile iletişime geçerek bilgileri alabilirler. Bu işlem bir API sayesinde olmaktadır. Uygulamaların bu bilgilere ulaşmak için farklı yöntemler kullanarak birçok veri kaynağına gitmesi gerekebilir. Bu durumda Code Complexity ve yönetmeniz gereken kod artar. API, bu gibi birçok zahmetten sizi kurtarmaktadır.
API, yıllar içerisinde birçok özellik kazanarak kendini değerli ve yararlı kılmıştır. Google, Amazon, Booking, eBay gibi birçok firmanın gelirlerinin bir kısmını API’lar oluşturmaktadır.
API’ların sağladığı önemli bir özellik ise güvenliktir. API’lar istediğiniz bilgileri sizden aldıkları keyword’lere göre değerlendirerek iletirler. Bu noktada API’a ulaşan taraf siz olduğunuz için sizin cihazınız/sisteminiz veya uygulamanız ile ilgili bir bilgiye sahip değillerdir. API’a verdikleriniz dışında herhangi bir bilgiye sahip değillerdir ve sizden talep etmezler.
API Nasıl Çalışır?
API nasıl kullanılır sorusuna, çalışma prensibine adım adım bakarak cevap bulabiliriz:
• Cihazda bulunan bir uygulama kullanılmak istendiğinde, bu uygulama internete bağlanır ve sunucuya bazı bilgiler iletir. Bu bilgiler API tarafından opsiyonel veya zorunlu alanlar olarak belirlenebilir.
• Sunucu bu bilgileri alır ve yorumlar. Yorumlama esnasında bu bilgiler yardımıyla farklı işler gerçekleştirilebilir. Alınan bilgiler ile API tarafından farklı veri kaynaklarında bir takım sorgulamalar gerçekleştirilebilir veya aksiyon (kayıt ekleme, güncelleme, silme gibi) alınabilir. Bu gibi durumlar tamamen API’ın ne iş yaptığıyla alakalıdır. Yorumlama işlemi tamamlandıktan sonra API’ın bulunduğu sunucu tekrar cihaza bilgi döner.
• Sunucudan dönen bilgiler cihazda bulunan uygulama tarafından okunur ve yorumlanır. API’ın döndürdüğü bilgiler ile kullanıcıya sunulan bilgiler yapısal olarak farklılık gösterebilir. API talep ettiği bilgiler üzerinde bir takım işlemler gerçekleştirebiliyorsa cihaz içerisindeki uygulama da bu işlemleri gerçekleştirebilir olmalıdır. API’dan dönen bilgileri yorumlama esnasında ne iş yapacağı ile alakalı yöntemleri burada uygulayabilir ve API’dan dönen bilgilerin cihaz içerisindeki uygulama tarafından yorumlanmasıyla beraber hazırlanan veriler kullanıcıya sunulur.
Modern API
API’lar günümüze birçok sorunu çözümleyerek gelmiştir. Modern API yaşanılan sıkıntıların ortaya çıkarmış olduğu bir kavramdır. Teknolojiler ihtiyaçlara göre şekillenmektedir. İhtiyaçları karşılayamayan teknolojilerin zamanla kullanım oranları düşmektedir. API da bu noktada kendini sürekli olarak geliştirerek tercih edilmeyi sağladı. Modern API, geliştiriciler için oldukça anlaşılabilir ve kolay iletişim kurulabilir bir yapıya sahip olması ile tüm ilgiyi üzerine topladı. Belgelenebilir olması, anlaşılabilirlik ve hız konusunda geliştiricilere oldukça ivme kazandırdı. Ayrıca HTTP ve Rest Standartlarına uyumlu olması da birçok teknoloji ile beraber kullanılabilir olmasının yolunu açtı.
API Neden-Nasıl Kullanılır?
Günümüz dünyasında teknolojinin gelişmesiyle beraber şirketler artık web uygulamaları ile müşterilerine tam olarak ulaşamaz hale geldiler. İşte tam bu noktada ‘API Neden Kullanılır?’ sorusunun cevabı ortaya çıkıyor. İnsanlar alışverişlerini, yemek siparişlerini, hatta temizlikçi talebini telefondan veya tabletten yapmaya başladılar. Bu durum insanların hayatlarını kolaylaştırmakla beraber uygulama geliştirme yöntemlerini de değiştirdi. Uygulamaların daha performanslı ve daha hızlı geliştirilmesi için Modern API’lar büyük bir öneme sahip.
HTTP protokolü üzerinden ulaşılabilir bir API hazırlamak istediğimizde (Bu API’lar için Web API diyebiliriz), bu API’ın sunduğu tüm servisler belgelendirilebilir hale gelecektir. Her servisin kullanım yöntemi birbirinden farklı olabilir. Güvenliğin oldukça önemli bir parametre olduğunu unutmamak gerekiyor. Web API’lar HTTP protokolünün tüm metodlarını desteklemektedir. Get, Post, Put, Delete işlemleri bunların başında gelmektedir ve CRUD yani Create Read Update Delete işlemleri bu metotlar yardımıyla Web API’a iletilmektedir. Günümüzde neredeyse tüm uygulamalar API’ları bu şekilde kullanırlar.
API örnekleri kullanım alanına göre birçok alanda değerlendirilip incelenebilir. Örneğin; Koton.com.tr üzerinden API’ın kullanımını inceleyelim:
Koton.com.tr’de binlerce ürün bulunmaktadır. Müşteri ürünler arasında gezerken bir ürünü beğenip sepete eklediğinde kullanıcının üye bilgisi ve ürün bilgisi bir API’a iletilmektedir ve bu API’da bilgiler yorumlanarak farklı bir model ile kullanıcıya yansıtılmak üzere Koton.com.tr’ye geri iletilir. Kullanıcı sepetim ekranını açtığında ürünü orada görür ve satın al butonuna basar. Ödeme işlemini tamamladığında ürün bilgisi, bankadan dönen bilgi ve müşteri bilgisi farklı bir API’a iletilir. Sipariş oluşturulması için bilgiler yorumlanır ve stok kontrolü yapılır. Tüm parametreler uygun olduğunda stok satış miktarı kadar düşürülür ve müşterinin adresine gönderilmek üzere sipariş hazırlanması için ilgili birime bilgi aktarılır. Daha sonra siparişin başarılı sonuçlandığı Koton.com.tr’ye gönderilir. Koton.com.tr API’dan aldığı bilgiyi yorumlayarak müşteriye “Siparişiniz Başarılı Bir Şekilde Tamamlandı” olarak yansıtılır. Fark ettiyseniz eğer, siparişin tamamlanması için, Koton.com.tr’nin ulaşmış olduğu API farklı bir API’a stok bilgisini sormak için ulaşıyor. Bunun gibi birçok farklı API üzerinden data alışverişi yapılıyor olabilir.
Web API’lar bir uygulama içerisinde veya IIS/Apache Server üzerinde host edilebilir. Microsoft tarafından yazılım dünyasına kazandırılan .Net Core ile artık Windows Server ihtiyacı olmadan Linux üzerinde de Web Application’lar çalıştırabilir. Web API’lar herhangi bir dilde hazırlanabilir. Go, Python, .Net gibi birçok alternatif teknoloji, API konusunda gelişmiş özelliklere sahiptir. Hazırlanan API bir IP (örn. 187.234.242.234/api) veya bir DNS Name (örn. https://www.koton.com.tr/api) üzerinden yayınlanarak kullanıma açılabilir. API türlerinde de bahsettiğimiz gibi, sadece uygulama bazlı veya tüm kullanıcılara açılan API’lar geliştirmek mümkündür. Bunun için sunucu veya Web API kullanıcı yetkilendirme tanımlamaları yapılmalıdır. IP veya DNS Name üzerinden kullanıcıların ulaşması engellenebilir yada sınırlandırılabilir.