API'nin açılımı “Application Programming Interface”, Programlama arayüzü anlamına gelir. API'ler bağlamında Uygulama arasında iletişimi temsil eder. Bu sözleşme, ikisinin istekler ve yanıtlar kullanarak birbiriyle nasıl iletişim kuracağını tanımlar. İlişkili API belgeleri, geliştiricilerin bu istek ve yanıtları nasıl yapılandırması gerektiğine dair bilgiler içerir.
API’lerin çalışabilmesi için en basit olarak bayilik sistemi gibi düşünebiliriz. Hizmet sağlayıcıdan gerekli bilgileri alarak hizmete sunmak anlamına gelir. En basitinden örnek verebilecek olursak, hava durumu için meteoroloji den hava durumu çekeceğimiz zaman veritabanından gerekli bilgilere erişim sağlamamız gerekmektedir.
Bu işler son derece güvenlikli olmak zorundadır yoksa ciddi problemlere yol açabilir.
Ne zaman ve nasıl oluşturulduklarına dayalı olarak API'ler dört farklı şekilde çalışabilir.
REST, Temsili Durum Aktarımı anlamına gelen Representational State Transfer ifadesinin kısaltmasıdır. REST, istemcilerin sunucu verilerine erişirken kullanabilmesi için GET, PUT, DELETE gibi belirli işlevler kullanır. İstemciler ve sunucular, HTTP üzerinden veri alışverişi yapar.
REST API'sinin ana özelliği durumsuz olmasıdır. Durumsuz olması, sunucuların istekler arasında istemci verilerini kaydetmemesi anlamına gelir. İstemcinin sunucuya gönderdiği istekler, bir web sitesini ziyaret etmek için tarayıcınıza yazdığınız URL'lere benzer. Gelen yanıt ise bir web sayfasında görmeye alışık olduğumuz grafikleri içermeyen sade verilerdir.
Bir Web API'si veya Web Hizmeti API'si, bir web sunucusu ile web tarayıcısı arasındaki uygulama işleme arabirimidir. Tüm web hizmetleri birer API'dir ancak tüm API'ler web hizmeti değildir. REST API'leri, yukarıda açıklanan standart mimari stilini kullanan özel bir Web API'si türüdür.
API'lerle ilgili olarak Java API'si veya hizmet API'leri gibi farklı terimlerinin olmasının sebebi, API'lerin World Wide Web'den önce oluşturulmuş olmalarıdır. Modern web API'leri birer REST API'sidir ve terimler birbirinin yerine kullanılabilir.
API entegrasyonları, istemciler ile sunucular arasındaki verileri otomatik olarak güncelleyen yazılım bileşenleridir. Telefonunuzun görüntü galerisindeki verilerin buluta otomatik olarak senkronize edilmesi veya başka bir saat dilimine seyahat ettiğinizde dizüstü bilgisayarınızın tarih ve saatinin otomatik olarak senkronize edilmesi, API entegrasyonlarına örnek olarak verilebilir. Kurumlar da birçok sistem işlevini etkili bir şekilde otomatikleştirmek için bunları kullanabilir.
REST API'lerinin sunduğu dört temel avantaj vardır:
API'ler, yeni uygulamaların mevcut yazılım sistemlerine entegre edilmesi için kullanılır. Her bir işlevi sıfırdan yazmaya gerek duyulmadığından geliştirme hızı artar. Mevcut kodlardan yararlanmaya devam etmek için API'leri kullanabilirsiniz.
Yeni bir uygulamanın gelişi, bütün bir sektörü değişime zorlayabilir. İşletmelerin hızlı yanıt vermesi ve yenilikçi hizmetlerin hızlı dağıtımını desteklemesi gerekir. Bunu, tüm kodu yeniden yazmak yerine API düzeyinde değişiklikler yaparak gerçekleştirebilirler.
API'ler, müşterilerinin ihtiyaçlarını birden fazla platformda karşılamak isteyen işletmelere benzersiz bir fırsat sunar. Örneğin, haritalar API'si harita bilgileri entegrasyonunun web siteleri, Android, iOS vb. aracılığıyla yapılabilmesini sağlar. Her işletme, ücretsiz veya ücretli API'leri kullanarak kendi dahili veritabanlarına benzer şekilde erişim verebilir.
API, iki sistem arasında bir ağ geçidi vazifesi görür. Her bir sistem, API'nin etkilenmemesi için dahili değişiklikler yapma gereği duyar. Bu sayede, taraflardan birinin gelecekte yapacağı kod değişiklikleri, diğer tarafı etkilemez.
API'ler, hem mimarilerine hem de kullanım kapsamlarına göre sınıflandırılır. Ana API mimarisi türlerini zaten incelediğimize göre, şimdi de kullanım kapsamına göz atalım.
Özel API'ler
Bunlar, her bir kurumda dahili kullanım içindir ve sadece işletmenin içindeki sistem ve verileri bağlamak için kullanılır.
Genel API'ler
Bunlar, halka açık olup herkes tarafından kullanılabilir. Bu API türlerinin bazıları için yetkilendirme adımları ve maliyetler söz konusuyken, bazıları tamamen açık ve ücretsizdir.
Çözüm Ortağı API'leri
Bunlar, sadece işletmeler arası ortaklıklarda yardım sağlamaları için yetkilendirilmiş harici geliştiricilerin erişimine açıktır.
Birleşik API'ler
Bunlar, karmaşık sistem gereksinimlerini veya davranışlarını ele almak üzere iki veya daha fazla API'yi bir araya getirir.
API uç noktası nedir ve neden önemlidir?
API uç noktaları, API iletişim sistemindeki nihai temas noktalarıdır. Bunlara sunucu URL'leri, hizmetler ve bilgilerin sistemler arasında gönderilip alındığı diğer belirli dijital konumlar dahildir. API uç noktalarının kurumlar için kritik öneme sahip olmasının iki ana sebebi vardır:
API uç noktaları, sistemi saldırılara karşı hassas hale getirir. API'lerin izlenmesi, kötüye kullanımı önleme açısından büyük önem taşır.
Yüksek trafikli olanlar başta olmak üzere API uç noktaları, darboğazlara yol açabilir ve sistem performansını etkileyebilir.
Tüm API'ler, uygun kimlik doğrulama ve izleme faaliyetleriyle güvenceye alınmalıdır. REST API'lerini güvenceye almanın en temel iki yöntemi şunlardır:
Bunlar, API çağrısında bulunacak olan kullanıcıların yetkilendirilmesi için kullanılır. Kimlik doğrulama belirteçleri, her bir kullanıcının iddia ettiği kişi olup olmadığını ve ilgili API çağrısı için gerekli erişim haklarına sahip olup olmadığını kontrol eder. Örneğin, e-posta sunucunuzda oturum açtığınızda, e-posta istemciniz güvenli erişim için kimlik doğrulaması yapar.
API anahtarları, API çağrısında bulunan programı veya uygulamayı doğrular. Bunlar, uygulamayı tanır ve uygulamanın ilgili API çağrısında bulunmak için gerekli erişim haklarına sahip olduğundan emin olur. Belirteçler kadar güvenli olmamakla birlikte API anahtarları, kullanım hakkında veri toplamak amacıyla API izlemeyi mümkün kılar. Çeşitli web sitelerini ziyaret ettiğinizde tarayıcınızın URL çubuğunda karakterlerden ve sayılardan oluşan uzun bir dize olduğunu fark etmişsinizdir. Bu dize, web sitesinin dahili API çağrıları yapmak için kullandığı bir API anahtarıdır.
Diğer geliştiricilerin kullanmak isteyeceği ve güveneceği bir API oluşturmak, büyük özen ve emek isteyen bir iştir. Yüksek kaliteli API tasarımı için gerekli beş adım şunlardır:
1. API'yi planlama
OpenAPI gibi API teknik özellikleri, API tasarımınızın şemasını sağlar. Farklı kullanım senaryolarını önceden düşünmek ve API'nin güncel API geliştirme standartlarına uyduğundan emin olmak en iyisidir.
2. API'yi oluşturma
API tasarımcıları, ortak kod kullanarak bir API prototipi hazırlar. Prototip test edildikten sonra, geliştiriciler dahili teknik özelliklere göre özelleştirme yapabilir.
3. API'yi test etme
Tıpkı yazılım testlerinde olduğu gibi, hata ve kusurları önlemek için API testleri yapılmalıdır. API üzerinde siber saldırılara karşı kuvvet testi yapmak için API test etme araçları kullanılabilir.
4. API belgeleri yazma
API'lerin nasıl kullanılacağı kendiliğinden anlaşılsa da API belgeleri, kullanışlılığı artıracak bir kılavuz işlevi görür. Geniş bir yelpazede işlevler ve kullanım senaryoları sunmanın yanında belgeleri de kaliteli olan API'ler, hizmet odaklı bir mimaride genellikle daha popüler olmaktadır.
5. API'yi pazarlama
Tıpkı pazaryeri, perakende ticaret için bir çevrimiçi pazar yeri olması gibi, geliştiricilerin diğer API'leri alıp satabilmesi için API pazar yerleri de mevcuttur. API'nizi kaydettirmeniz, gelir elde etmenize imkan tanıyabilir.
API test etme stratejileri, diğer yazılım test etme metodolojilerine benzer. Ana odak noktası, sunucu yanıtlarını doğrulamaktır. API testleri şunları içerir:
Performans testi için API uç noktalarına birden fazla istek göndermek.
İş mantığını ve işlevlerin doğruluğunu kontrol etmek için birim testleri yazmak.
Sistem saldırılarını simüle ederek güvenlik testleri yapmak.
API belgeleri nasıl yazılır?
Kapsamlı API belgeleri yazmak, API yönetimi sürecinin bir parçasıdır. API belgeleri, araçlar kullanılarak otomatik oluşturulabilir ya da manuel olarak yazılabilir. En iyi uygulamalardan bazıları şunlardır:
Açıklamaları kolayca okunabilen, basit bir dille yazmak. Araçlar tarafından oluşturulan belgeler zor anlaşılabilir ve düzenleme gerektirebilir.
İşlevleri açıklamak için kod örnekleri kullanmak.
Belgeleri doğru ve güncel tutmak.
Yazma tarzını belirlerken yeni başlayanları hedeflemek.
API'nin kullanıcılar için çözebileceği tüm sorunlara yer vermek.
Bir API nasıl kullanılır?
Yeni bir API'yi uygulama adımları şunları içerir:
Bir API anahtarı almak. Bunun için API sağlayıcısının sisteminde doğrulanmış bir hesap oluşturulur.
Bir HTTP API istemcisi ayarlayın. Bu araç, aldığınız API anahtarlarını kullanarak API isteklerini yapılandırmanıza olanak tanır.
Bir API istemciniz yoksa API belgelerine başvurarak isteği tarayıcınızda kendiniz yapılandırmaya çalışabilirsiniz.
Artık aşinalık kazandığınız yeni API söz dizimini kodunuzda kullanmaya başlayabilirsiniz.
Yeni API'leri nerede bulabilirim?
Yeni web API'lerini API pazar yerlerinde ve API dizinlerinde bulabilirsiniz. API pazar yerleri, isteyen herkesin bir API'yi kaydettirerek satabildiği açık platformlardır. API dizinleri, dizin sahibinin yönettiği, denetimli depolardır. Uzman API tasarımcıları, dizinine eklemeden önce bir API'yi değerlendirebilir ve test edebilir.
Popüler API web sitelerinden bazıları şunlardır:
Rapid API - Sitedeki 10.000'den fazla genel API ve 1 milyon aktif geliştirici ile en büyük küresel API pazarıdır. RapidAPI, kullanıcılara satın alma kararını vermeden önce API'leri doğrudan platform üzerinde test etme imkanı sunar.
Public APIs - API'leri 40 niş kategori altında gruplandıran bu platform, gezinmenizi ve ihtiyaçlarınıza en uygun olanı bulmanızı kolaylaştırır.
APIForThat ve APIList - Bu web sitelerinin ikisinde de 500'ün üzerinde web API'si ve nasıl kullanılacaklarına dair derinlemesine bilgiler bulunur.
API ağ geçidi nedir?
Bir API Ağ Geçidi, çok sayıda arka uç hizmeti kullanan kurumsal müşteriler için bir API yönetimi aracıdır. API ağ geçitleri genellikle kullanıcı kimlik doğrulaması, istatistikler ve hız yönetimi gibi tüm API çağrıları için geçerli olan yaygın görevleri üstlenir.