API, iki uygulamanın birbiriyle konuşmasını sağlayan bir yazılım aracı olan Application Programming Interface’in kısaltmasıdır. Facebook gibi bir uygulamayı her kullandığınızda, anlık mesaj gönderdiğinizde veya telefonunuzdaki hava durumunu kontrol ettiğinizde bir API kullanırsınız.
API Örneği Nedir?
Cep telefonunuzda bir uygulama kullandığınızda, uygulama İnternet’e bağlanır ve bir sunucuya veri gönderir. Sunucu daha sonra bu verileri alır, yorumlar, gerekli eylemleri gerçekleştirir ve telefonunuza geri gönderir. Uygulama daha sonra bu verileri yorumlar ve istediğiniz bilgileri okunabilir bir şekilde sunar. Bir API budur – tüm bunlar API aracılığıyla gerçekleşir.
Bunu daha iyi açıklamak için tanıdık bir örnek alalım.
Sipariş verebileceğiniz bir menü içeren bir restoranda bir masada oturduğunuzu düşünün. Mutfak, siparişinizi hazırlayacak “sistemin” bir parçasıdır. Eksik olan, siparişinizi mutfağa iletmek ve yemeğinizi masanıza geri göndermek için kritik bağlantıdır. Garson veya API devreye giriyor. Garson, isteğinizi veya siparişinizi alan ve mutfağa – sisteme – ne yapılacağını söyleyen haberci – veya API. Sonra garson size geri cevap verir; bu durumda, yiyecek.
İşte gerçek hayattaki bir API örneği. Online uçuş arama sürecine aşina olabilirsiniz. Tıpkı restoran gibi, farklı şehirler, kalkış ve dönüş tarihleri ve daha fazlası dahil olmak üzere çeşitli seçenekler arasından seçim yapabilirsiniz. Rezervasyon yaptığınızı bir havayolu web sitesinde yayınladığınızı hayal edelim. Bir kalkış şehri ve tarihi, bir dönüş şehri ve tarihi, kabin sınıfı ve diğer değişkenleri seçersiniz. Uçuşunuzu rezerve etmek için havayolu şirketlerinin web sitelerine veritabanlarına erişmek için etkileşimde bulunursunuz ve bu tarihlerde koltuk olup olmadığını ve maliyetlerin ne olabileceğini görebilirsiniz.
Bununla birlikte, havayolu şirketinin web sitesini –– bilgilere doğrudan erişimi olan bir kanalı- kullanmıyorsanız ne olur? Kayak veya Expedia gibi bir dizi havayolu veritabanından bilgi toplayan bir çevrimiçi seyahat hizmeti kullanıyorsanız ne olacak?
Seyahat hizmeti, bu durumda havayolunun API’sı ile etkileşime girer. API, yardımcı garsonunuz gibi, o çevrimiçi seyahat hizmeti tarafından havayolunun veri tabanından kitap koltuklarına, bagaj seçeneklerine vb. Bilgi almasını isteyebilecek arabirimdir. API daha sonra havayolunun isteğinize yanıtını alır ve doğru şekilde sunar. daha sonra size en güncel ve alakalı bilgileri gösteren çevrimiçi seyahat hizmetine geri dönün.
API Güvenlik Katmanı Sağlar mı?
Telefonunuzun verileri hiçbir zaman sunucuya tam olarak maruz kalmaz ve aynı şekilde sunucu asla telefonunuza tam olarak maruz kalmaz. Bunun yerine, her biri küçük veri paketleriyle iletişim kurarak yalnızca gerekli olanı paylaşır – sipariş alma gibi. Restorana ne yemek istediğinizi söylersiniz, karşılığında neye ihtiyaçları olduğunu söylerler ve sonunda yemeğinizi alırsınız.
API’lar o kadar değerli hale geldi ki birçok işletme gelirinin büyük bir bölümünü oluşturuyorlar. Google, eBay, Salesforce.com, Amazon ve Expedia gibi büyük şirketler, API’larından para kazanan şirketlerden sadece birkaçı. “API ekonomisi” nin ifade ettiği şey bu API’ların pazar alanıdır.
Modern API
Yıllar geçtikçe, “API” nin ne olduğu genellikle bir uygulamaya herhangi bir tür genel bağlantı ara birimini tanımlamaktadır. Bununla birlikte, daha yakın zamanlarda, modern API, onları olağanüstü değerli ve kullanışlı yapan bazı özellikleri üstlenmiştir:
- Modern API’ler geliştirici dostu, kolayca erişilebilir ve geniş çapta anlaşılan standartlara (genellikle HTTP ve REST) uyar.
- Koddan çok ürünler gibi muamele görürler. Belirli kitlelerin (ör. Mobil geliştiricilerin) tüketimi için tasarlanmıştır, belgelenir ve kullanıcıların bakım ve yaşam döngüsünden belirli beklentilere sahip olabilecekleri şekilde sürümlenirler.
- Çok daha standart olduklarından, güvenlik ve yönetişim için çok daha güçlü bir disipline sahipler, performans ve ölçek için izleniyor ve yönetiliyorlar
- Diğer herhangi bir ürün yazılımında olduğu gibi, modern API’nin tasarım, test, oluşturma, yönetme ve sürüm oluşturma için kendi yazılım geliştirme yaşam döngüsü (SDLC) vardır. Ayrıca, modern API’ler tüketim ve versiyonlama için iyi belgelenmiştir.