Türkçeye Uygulama Programlama Arayüzü olarak çevrilebilecek olan Application Programming Interface ya da daha bilinen adıyla, kısaca API komut araçlarından Java’ya veya Rails web uygulamalarında Ruby’e kadar her yerde kullanılan bir konsepttir. API farklı yazılım bileşenlerinin ya da kaynaklarının birbirleri ile etkileşime geçmesini sağlamaktadır.
API Nedir? Ne İşe Yarar?
API uygulamaların verilere ulaşması ve harici yazılım bileşenleri, işletim sistemleri ya da mikroservisler ile etkileşime geçmesini sağlayan fonksiyonlardır. Basitçe API kullanıcı isteğini sisteme ve sistem cevabını kullanıcıya iletir. Bir alışveriş sitesinde sepete ekle butonuna tıklandığında API siteye ziyaretçinin sepete ürün eklediğini iletir, site ürünü sepete koyar ve sepet güncellenir. API ile beraber sık duyulan terimlerden bir tanesi de mikroservislerdir. Ancak bunlar API’lerden çok farklıdır. Mikroservisler web uygulaması içerisinde fonksiyonellik sağlayan stiller ya da yapılardır. Mikroservisler birbirleri ile iletişime geçebilmek için API kullanmaktadır. API geliştiricinin bilgi almak ya da göndermek için spesifik bir “çağrı” ya da “istek” yapmasını sağlamaktadır. Bu iletişim JSON adı verilen programlama dili kullanılarak yapılmaktadır.
Kullanım Alanları ve Özellikleri
API’ler tasarlandıkları kullanıma alanlarına göre sınıflandırılabilmektedir. Bunlar genel olarak veritabanı API’leri, işletim sistemi API’leri, remote API’ler ve Web API’leridir.
Veritabanı API’leri
Veritabanı API’leri uygulama ve veritabanı yönetim sistemi arasında iletişimi sağlamaktadır. Geliştiriciler veriye erişme ya da tabloları değiştirmek için veritabanlarına sorgular yazmaktadır. Örneğin The Drupal 7 Database API kullanıcıların Oracle, MongoDB, PostgreSQL, MySQL, CouchDB ve MSSQL gibi farklı veritabanları için sorgu oluşturmasını sağlamaktadır.
İşletim Sistemi API’leri
Bu API grubu uygulamaların, işletim sistemlerinin kaynaklarını ve servislerini nasıl kullanacağını belirtmektedir. Her işletim sistemi bir API setine sahiptir.
Remote API’ler
Farklı cihazlarda çalışan uygulamaların birbirleri ile olan etkileşimlerinin standartlarını Remote API’ler belirlemektedir. Örneğin bir yazılım Remote API sayesinde bulunduğu yerden farklı bir yerde olan cihazdaki kaynaklara erişmek için kullanılmaktadır. İki farklı yerde bulunan uygulamanın bir iletişim ağı üzerinden birbirine bağlanması için Remote API’ler genellikle web standartları baz alınarak geliştirilmektedir. Java Database Connectivity API ve Java Remote Method Invocation API bunlara örnektir.
Web API
En çok bu tür kullanılmaktadır. Web API’ler istemci – sunucu mimarisinde web tabanlı sistemler arasında veri ve işlevsellik sağlamaktadır. Bu API’ler genellikle HTTP ya da HTTPS protokolünü kullanarak web uygulamalarından gelen istekleri ve cevapları iletir. Örneğin bir işletmenin adresini internet sitesine koymak için Google Maps API kullanılmaktadır.
API’nın Tarihçesi Nedir?
API fikri terimin kendisinden çok daha eskiye dayanmaktadır. İngiliz bilgisayar bilimcileri Maurice Wilkes ve David John Wheeler 1940’lı yıllarda EDSAC bilgisayarında modüler yazılım kütüphaneleri üzerine çalışmalar yapmıştır. Application Program Interface terimi ise 1968 yılında Amerikan Bilgi İşlem Dernekleri Federasyonu konferansında kullanılmıştır. Günümüzde ki anlamıyla API’nin kısa bir geçmişi vardır. Yaklaşık 20 yıldır kullanımda olan modern anlayışın gelişmesinde Salesforce, eBay, Flickr, Amazon, Facebook ve Google gibi şirketlerin çok büyük katkısı bulunmaktadır. Günümüzde en çok kullanılan API’lerden bir tanesi Google Maps API’dir.
API Türleri Nelerdir?
API dağıtım türleri açısından Private, Partner ve Public ya da External olmak üzere üç farklı türe ayrılmaktadır.
Private API
Bu tarz API’ler bir organizasyon içerisindeki çözümleri ve servisleri iyileştirmek için tasarlanmış arayüzlerdir. Örneğin şirket içi geliştiriciler firmanın IT sistemleri ya da uygulamaları için private API kullanabilmektedir. Her ne kadar uygulama herkesin kullanıma açık olsa da arayüzün kendisi sadece API yayıncısı tarafından direkt olarak kullanılabilir haldedir. Bu strateji API kullanımı üzerinde tam kontrol sağlamaktadır.
Partner API
Partner API’ler genel olarak açık ancak işletme partnerleri arasında kullanılan API’lerdir. En sık kullanım alanı iki taraf arasındaki uygulama entegrasyonudur. Örneğin bir alışveriş sitesi ile kargo firması Partner API kullanmaktadır.
Public API
Public API, harici ya da geliştirici tabanlı API olarak da bilinmektedir. Bu API’ler üçüncü taraf tüm geliştiriciler için kullanıma açıktır. Public API kendi içerisinde açık yani ücretsiz ve ücretli olmak üzere ikiye ayrılmaktadır. Ücretliler abonelik ya da kullanım ücreti almaktadır. Birçok geliştiriciye üyelik almadan önce deneme yapabilmeleri için ücretsiz deneme sürümleri sunulmaktadır.
REST API ve SOAP API Nedir?
REST API ve SOAP API birer API mimarisidir. Representational State Transfer’ın kısaltması olan REST API son derece popüler bir Web API mimarisidir. Bir arayüzün REST API olması için bazı mimari prensiplere sahip olması gerekmektedir. REST API’lerde istemci – sunucu mimarisi, tabiiyetsizlik, cachelenebilirlik ve katmanlı sistem olması gerekmektedir. Simple Object Access Protocol yani SOAP API ise kendini kanıtlamış bir Web API türüdür. Genişletilebilir, bağımsız ve tarafsızdır. HTTP, SMTP, TCP ve çok daha fazla iletişim protokolü üzerinden kullanılabilmektedir. SOAP API’lerin SOAP mesajını nasıl işleyeceği, özellikleri ve modülleri, protokol koralları ve SOAP mesaj yapısı bulunmaktadır.
Remote API Nedir?
Remote API iletişim ağı üzerinden etkileşimi sağlamak için tasarlanmaktadır. Uzak API anlamına gelen Remote API’nin anlamı isteği yapan cihazın dışındaki bir cihazda bulunan kaynakların API ile kullanılabilmesini sağlamaktadır. Birçoğu internet üzerinden etkileşim için kullanıldığından genellikle Web API standartlarında tasarlanmaktadır. Tüm Remote API’ler Web API değildir ancak WEB API’lerin tamamının Remote API olduğunu söylemek çok yanlış değildir. Mesaj istekleri ve cevap mesajlarının yapısı için genellikle HTTP istekleri kullanılmaktadır. Bu cevaplar genellikle XML ya da JSON dosyası şeklindedir. XML ve JSON kullanılmasının sebebi diğer uygulamaların verileri kullanabilmesi için kolay bir şekilde sunulmasıdır.
API’nın Geliştiricilere Katkıları Nelerdir?
API’lerin geliştiricilere göz ardı edilemeyecek kadar faydası bulunmaktadır. Bunların başında ise otomasyon gelmektedir. Burada işlemi insanlardan çok bilgisayarlar yapmaktadır. API sayesinde geliştiriciler daha hızlı çalışabildiği gibi iş akışını güncelleyerek daha kısa sürede daha verimli çalışabilmektedir. Verimlilik aynı zamanda içerik alanında da geçerlidir. API erişimi ile beraber yeni içerik çok daha hızlı bir şekilde yayınlanabilmektedir. Sistem içeriği otomatik olarak paylaşır ve her kanal için erişilebilir hale getirir. API’nın bir diğer katkısı da adaptasyondur. Zaman içerisinde her sistem değişmektedir. API’ler sayesinde yeni entegrasyonlar yapmak ve değişikliklere ayak uydurmak sıfırdan başlamak yerine geçmektedir. Bu da hem zaman he mde maliyet açısından büyük bir tasarruf anlamına gelmektedir.