Application programming interface yani uygulama programlama arabirimi anlamına gelen API, farklı yazılım bileşenlerinin iletişim kurmasını ve veri aktarmasını sağlayan bir dizi protokoldür. Geliştiriciler; güçlü, dayanıklı, güvenli ve kullanıcı ihtiyaçlarını karşılayabilen uygulamalar oluşturmak için küçük ve ayrık kod parçaları arasındaki boşlukları kapatmak için API’leri kullanır. Siz göremeseniz bile API’ler her yerdedir ve modern yaşamlarımız için gerekli olan dijital deneyimlere güç sağlamak için arka planda sürekli çalışır.
API’ler Nasıl Çalışır?
API’ler, uygulamalar, sistemler ve cihazlar arasında veri paylaşarak çalışır. Bu süreci daha iyi anlamak için API’leri restoranlar gibi düşünebilirsiniz. Bu örnekte müşteri, garsona ne istediğini söyleyen kullanıcı gibidir. Garson, müşterinin siparişini alan ve bunu mutfak için takip etmesi kolay talimatlara çeviren bir API gibidir; bazen mutfak personelinin tanıyacağı özel kodlar veya kısaltmalar kullanır. Mutfak personeli, siparişi müşterinin özelliklerine göre oluşturduğu ve garsona verdiği ve ardından müşteriye teslim ettiği için API sunucusu gibidir.
Şimdi bir seviye daha derine inebilir ve API istemcisinden başlayarak bir API’nin farklı bileşenlerini incelemeye başlayabilirsiniz. API istemcisi, kullanıcı eylemlerine yanıt olarak istekleri bir araya getirmekten ve bunları uygun API uç noktasına göndermekten sorumludur. Uç noktalar, bir veri tabanındaki belirli kaynaklara erişim sağlayan Uniform Resource Identifiers’dır (URI’ler). Örneğin, bir kullanıcı bir e-ticaret mağazasındaki tüm ürünleri görmek isterse, API istemcisi /products uç noktasına bir GET isteği gönderir.
API sunucusu isteği alır, geçerli olduğunu onaylar, uygun verileri alır veya değiştirir ve müşteriye bir yanıt verir. /products uç noktasında başarılı bir GET isteği durumunda, bu, yanıt mağazanın kataloğundaki tüm ürünleri ve 200 durum kodunu içerir.
Neden Bir API Kullanmalısınız?
API’ler çok sayıda amaca hizmet eder. Genel olarak, yazılım geliştirmeyi basitleştirir ve hızlandırır. Geliştiriciler, diğer sağlayıcılardan mevcut çözümlere işlevsellik (yani bir tavsiye sistemi, konaklama rezervasyon motoru, ödeme işleme veya görüntü tanıma özelliği) ekleyebilir veya üçüncü taraf sağlayıcıların hizmetlerini kullanarak yeni uygulamalar oluşturabilir.
Durum ne olursa olsun, uzmanların diğer çözümün nasıl çalıştığını anlamaya çalışarak kaynak koduyla uğraşması gerekmez. Yazılımlarını başka bir yazılıma bağlamaları yeterlidir. Başka bir deyişle, API’ler, iki sistem arasında bir soyutlama katmanı görevi görerek, ikincisinin karmaşıklığını ve çalışma ayrıntılarını gizler.
API’lerin rolü, yalnızca yazılım geliştirme açısından değil, aynı zamanda işbirliği açısından da bakarsak daha da büyüktür. Kaynak alışverişi için makine tarafından okunabilen bu arabirimler, gizli bir şekilde çalışan ve gerekli teknolojik bağlantıyı sağlayan teslimat hizmetleri gibidir. Fourth State of API Integration Report of 2020’ye göre, katılımcıların yüzde 83’ü API entegrasyonunu işletmeleri ve BT altyapıları için “kritik” bulmaktadır.
Bu bağlamda, karar vericiler ve geliştiriciler için iki ana görev, bir şirketin belirli iş ihtiyaçlarına uygun API’yi seçmek ve onu nasıl etkin bir şekilde kullanacağını anlamaktır.
Bir API’yi Nasıl Kullanırım?
Bir API kullanmak genellikle aşağıdaki adımları içerir:
Adımlar | Tanım |
Bir API bulun | Bir API kullanmanın ilk adımı, ihtiyaç duyduğunuz işlevselliği sağlayan bir API bulmaktır. İnternette birçok API vardır ve arama motorlarını, geliştirici portallarını veya API pazar yerlerini kullanarak API’leri arayabilirsiniz. |
Belgeleri okuyun | Kullanmak istediğiniz bir API bulduğunuzda, bir sonraki adım API belgelerini okumaktır. Belgeler, API’nin yetenekleri, isteklerin ve yanıtların yapısı ve herhangi bir kimlik doğrulama veya yetkilendirme gereksinimleri hakkında bilgi sağlamalıdır. |
API’nin kullanım şartlarını anlayın | Bir API kullanmaya başlamadan önce kullanım şartlarını anlamanız önemlidir. Bu şartlar, API’yi nasıl kullanabileceğinize ve API verilerini nasıl kullanıp paylaşabileceğinize ilişkin sınırlamaları belirtecektir. API’nin ücretsiz olup olmadığı veya ücretli abonelik gerektirip gerektirmediği de açıklanabilir. |
Bir API anahtarı edinin | Birçok API, kullanmaya başlamadan önce bir API anahtarı almanızı gerektirir. API anahtarı, API isteklerinizin kimliğini doğrulamak için kullanılan benzersiz bir tanımlayıcıdır. API’ye kaydolduktan veya API’nin kullanım şartlarını kabul ettikten sonra size bir tane verilir. |
API istekleri yapın | Bir API anahtarına sahip olduğunuzda ve API belgelerini okuduktan sonra, API istekleri yapmaya başlayabilirsiniz. API isteği genellikle erişmek istediğiniz kaynağı tanımlayan bir URI içerir. Ayrıca, gerçekleştirmek istediğiniz işlemi belirtmek için bir HTTP fiiline (GET veya POST gibi) sahip olacaktır. Tercih ettiğiniz programlama dilinde bir komut satırı yardımcı programı veya kitaplık gibi bir araç kullanarak API istekleri yapabilirsiniz. |
API yanıtını işleyin | Bir API isteği yaptığınızda, API sunucusu size bir yanıt gönderir. Yanıt, verileri, bir hata mesajını veya işlemin sonucunu gösteren bir durum kodunu içerebilir. API yanıtını işlemek ve oluşabilecek hataları veya istisnaları işlemek önemlidir. |
En iyi uygulamaları takip edin | API isteklerinin sayısını azaltmak, hataları ve istisnaları nazikçe işlemek ve API’nin kullanım koşullarına uymak için verileri önbelleğe alın. Bunun gibi en iyi uygulamaları takip ederek API kullanımınızın verimli, güvenilir ve uyumlu olduğundan emin olabilirsiniz. |
Farklı API Türleri Nelerdir ve Bunlar Nasıl Kullanılır?
Birçok farklı API türü ve bunları kategorize etmenin yolları vardır. Örneğin, API’leri onlara kimin eriştiğine göre kategorilere ayırabilirsiniz. Bu organizasyonel çerçeve aşağıdakileri içerir:
1. Özel API’ler
Dahili API’ler olarak da bilinen özel API’ler, tek bir işletme içindeki farklı yazılım bileşenlerini bağlamak için kullanılır ve üçüncü taraf kullanımına açık değildir. Örneğin, bir sosyal medya uygulamasında oturum açma iş akışını yöneten özel bir API, beslemeyi yöneten başka bir özel API ve kullanıcılar arasındaki iletişimi kolaylaştıran başka bir özel API olabilir. Bazı uygulamalar düzinelerce hatta yüzlerce özel API içerebilir.
2. Genel API’ler
Genel API’ler, üçüncü taraf geliştiricilerin kendi uygulamalarına entegre edebilecekleri bir kuruluşun verilerine, işlevlerine veya hizmetlerine genel erişim sağlar. Bazı genel API’ler ücretsiz olarak sunulurken, diğerleri faturalandırılabilir ürünler olarak sunulur. Örneğin, bir e-ticaret uygulaması, bu işlevi sıfırdan oluşturmak zorunda kalmadan ödeme işlemini gerçekleştirmek için Stripe gibi bir genel ödeme API’sini içerebilir.
3. Partner API’s
Çözüm Ortağı API’leri, iki veya daha fazla şirketin bir proje üzerinde işbirliği yapmak için verileri veya işlevleri paylaşmasına olanak tanır. Genel halka açık değildir ve bu nedenle yalnızca yetkili iş ortakları tarafından kullanılmalarını sağlamak için kimlik doğrulama mekanizmalarından yararlanır.
API’leri, çok sayıda mimari stillerine göre de kategorilere ayırabilirsiniz. En sık kullanılan mimari stiller aşağıdaki şekildedir:
REST: REST, internet üzerinden veri aktarımı için en popüler API mimarisidir. RESTful bağlamında, kaynaklara uç noktalar aracılığıyla erişilebilir ve bu kaynaklar üzerinde GET, POST, PUT ve DELETE gibi standart HTTP yöntemleriyle işlemler gerçekleştirilir.
SOAP: Simple Object Access Protocol anlamına gelen SOAP, bir istemci ile sunucu arasında yüksek düzeyde yapılandırılmış mesajları aktarmak için XML kullanır. SOAP genellikle kurumsal ortamlarda veya eski sistemlerde kullanılır ve gelişmiş güvenlik özellikleri içermesine rağmen diğer API mimarilerinden daha yavaş olabilir.
GraphQL: GraphQL, müşterilerin birden çok isteği zincirlemeden tam olarak ihtiyaç duydukları verileri almaları için tek bir API uç noktasıyla etkileşim kurmasını sağlayan açık kaynaklı bir sorgulama dilidir. Bu yaklaşım, yavaş veya güvenilir olmayan ağ bağlantılarında çalışabilecek uygulamalar için yararlı olabilecek, istemci ile sunucu arasındaki gidiş-dönüş sayısını azaltır.
Webhooks: Webhooks, isteklerin olay tabanlı tetikleyicilere yanıt olarak otomatik olarak gönderildiği olay odaklı mimarileri uygulamak için kullanılır. Örneğin, bir uygulamada ödeme yapılması gibi belirli bir olay meydana geldiğinde, uygulama ve istek yükündeki ilgili olay verileriyle önceden yapılandırılmış bir webhooks URL’sine bir HTTP isteği gönderebilir. Webhook’u alan sistem daha sonra olayı işleyebilir ve uygun eylemi gerçekleştirebilir.
gRPC: RPC, Remote Procedure Call anlamına gelir ve gRPC API’leri Google tarafından oluşturulmuştur. GRPC mimarilerinde, bir istemci bir sunucuyu sanki yerel bir nesneymiş gibi arayabilir, bu da dağıtılmış uygulama ve sistemlerin birbirleriyle iletişim kurmasını kolaylaştırır.
Bazı Yaygın API Kullanım Durumları Nelerdir?
API’ler çok yönlüdür ve aşağıdakileri içeren çok çeşitli kullanım durumlarını destekler:
1. İç ve dış sistemlerle entegrasyon
Geliştiricilerin API’lere yönelmesinin en yaygın nedenlerinden biri, bir sistemi diğerine entegre etmektir. Örneğin, müşteri ilişkileri yönetimi (CRM) sisteminizi pazarlama otomasyon sisteminizle entegre etmek için bir API kullanabilirsiniz; bu, bir satış temsilcisi CRM’ye yeni bir potansiyel müşteri eklediğinde otomatik olarak bir pazarlama e-postası göndermenizi sağlar.
2. İşlevsellik ekleme veya geliştirme
API’ler, uygulamanıza müşterilerinizin deneyimini iyileştirebilecek ek işlevler eklemenizi sağlar. Örneğin, bir yemek dağıtım uygulaması üzerinde çalışıyorsanız, kullanıcıların siparişlerini yoldayken takip etmelerini sağlamak için üçüncü taraf bir haritalama API’sı ekleyebilirsiniz.
3. IoT cihazlarını bağlama
API’ler, akıllı saatler, fitness izleyicileri, kapı zilleri ve ev aletleri gibi cihazları içeren Nesnelerin İnterneti (IoT) ekosistemi için çok önemlidir. API’ler olmadan, bu cihazlar buluta veya birbirlerine bağlanamaz ve bu da onları işe yaramaz hale getirir.
4. Daha ölçeklenebilir sistemler oluşturma
API’ler, uygulamaların birbirleriyle özel API’ler aracılığıyla iletişim kuran küçük hizmetlerin bir koleksiyonu olarak oluşturulduğu mikro hizmet tabanlı mimarileri uygulamak için kullanılır. Mikro hizmetler birbirinden bağımsız olarak yönetilir, devreye alınır ve tedarik edilir; bu da ekiplerin sistemlerini güvenilir ancak uygun maliyetli bir şekilde ölçeklendirmesine olanak tanır.
5. Maliyetleri azaltmak
API’ler, e-posta gönderme, rapor alma ve sistemler arasında veri paylaşma gibi yoğun zaman alan görevleri otomatikleştirerek işletmelerin operasyonel maliyetleri azaltmasına yardımcı olur. Ekiplerin tekerleği yeniden icat etmek yerine mevcut işlevleri yeniden kullanmalarını sağlayarak geliştirme maliyetlerini de azaltabilir.
6. Kurumsal güvenliği ve yönetişimi iyileştirme
API’ler, kurumsal güvenlik için gerekli olan birçok iş akışını destekler. Örneğin, kullanıcıların birden fazla sistem için tek bir kullanıcı adı ve şifre kullanmasını sağlayan tek oturum açma (SSO), API’ler tarafından mümkün hale getirilmiştir. API’ler ayrıca, çalışanlara geri ödeme yapılmadan önce harcamaların onaylanması gerekliliği gibi kurumsal yönetişim kurallarını ve politikalarını uygulamak ve otomatikleştirmek için kullanılır.
API Örnekleri
Aşağıda farklı protokol ve spesifikasyonlar kullanan iyi bilinen API’lerin bazı örneklerini bulabilirsiniz:
1. Google Maps
Google’ın teknoloji devleri arasında yer aldığı ve diğer şirketlerin çalışma biçiminde standartları belirlediği bir sır değildir. Entegre bir haritası olan çoğu web sitesi Google Haritalar API’lerini kullanır. Örneğin, Google’ın Yol Tarifi API’si, coğrafi konumlar arasında XML veya JSON biçimli yol tariflerini döndürmek için bir HTTP isteği kullanır.
2. Vulkan
Vulkan, işletim sistemi düzeyinde çalışan platformlar arası bir API’dir. Geliştiricilerin uygulamalarda yüksek kaliteli, gerçek zamanlı grafikler oluşturmasını sağlar ve bir uygulama ile bir grafik işleme birimi arasındaki iletişimi sağlar.
3. Skyscanner Flight Search
Skyscanner, yolcuların Skyscanner’ın fiyat veri tabanından en iyi fiyatlarla uçuş aramasına olanak tanıyan bir meta arama platformudur. Ayrıca Skyscanner, bağlı ortaklarına veri alışverişi biçimleri olarak hem XML hem de JSON’u destekleyen bir RESTful API sağlar. Güvenliği artırmak ve ortakları istekte bulunmak için yalnızca HTTPS protokolünü kullanmaya teşvik eder.
5. Sabre Air Availability
Sabre Air Availability, belirli tarihler, kalkış yerleri ve varış noktaları için uçuşları ve karşılık gelen uygunluk bilgilerini aramak için kullanılan bir Sabre SOAP API’sidir. Bir SOAP API olduğu için, veri değişim formatı olarak XML ve istekler için HTTP veya HTTPS protokollerini kullanır.
6. Yelp API
Yelp API, kullanıcılara en iyi restoranlar, yapılacak şeyler, gece hayatı ve daha fazlası hakkında öneriler ve incelemeler sağlayan bir GraphQL API’sidir. Sunuculardan verilere erişmek için HTTP istek yöntemini kullanır. API, geliştiricilerin uygulamalarına ekleyebileceği uç noktalar aracılığıyla veri kaynaklarına bağlanır. Veri değişim formatı olarak JSON’u kullanır.
API İle İlgili En Çok Sorulan Sorular
1. API’lerle kim çalışır?
Geliştiricilerin işlerinin bir parçası olarak API’lerle çalışma olasılığı daha yüksek olsa da, Postman’s State of the API raporu, ürün yöneticileri, iş analistleri ve müşteri destek uzmanları gibi geliştirici olmayan pek çok kişinin de API’lerle çalıştığını ortaya çıkarmıştır.
2. Hangi endüstriler API kullanır?
API’ler, uygulamaların ve diğer dijital hizmetlerin birincil yapı taşları oldukları için teknoloji endüstrisinde yaygın olarak kullanılmaktadır. Ayrıca finans kurumları müşterilerinin işlemlerini kolaylaştırmak için API’lere güvenir ve sağlık hizmetleri sağlayıcıları hasta verilerini yönetmek ve güvenliğini sağlamak için API’leri kullanır.
3. API öncelikli strateji nedir?
API öncelikli strateji, uygulamaların API’ler aracılığıyla sunulan dahili ve harici hizmetlerin bir koleksiyonu olarak tasarlanıp oluşturulduğu bir yazılım geliştirme yaklaşımıdır. API’ler bu uygulamaların yapı taşlarıdır ve API öncelikli strateji ekiplerin kalite, güvenlik ve performanslarına öncelik vermesine yardımcı olur.
4. API’leri oluşturmanıza ve entegre etmenize yardımcı olabilecek bazı araçlar nelerdir?
API geliştirme, yinelemeli ve işbirlikçi bir süreçtir, bu nedenle her şeyin olabildiğince sorunsuz çalışmasını sağlamak için uygun araçlardan yararlanmak önemlidir. Örneğin, ekipler API değişikliklerini takip etmek için GitHub veya BitBucket gibi bir kaynak kontrol yönetimi aracı kullanmalıdır. Jenkins veya CircleCI gibi bir CI/CD pipeline, API testi ve dağıtım süreçlerini otomatikleştirmelerine yardımcı olacaktır. Ayrıca ekiplerin, bu araçlarla entegre olan, sürtünmeyi azaltacak ve mevcut iş akışlarını artıracak bir API platformu kullanması da önemlidir.
5. Bir API’yi nasıl oluşturursunuz?
API geliştirme süreci, API’nin amacına, diline ve kapsamına göre büyük ölçüde değişebilir. Bununla birlikte, beklendiği gibi çalıştığından emin olmak için her yeni API’nin tasarlanması, bir API geliştirme çerçevesiyle uygulanması ve kapsamlı bir şekilde test edilmesi gerekir.