API (Application Programming Interface/Uygulama Programlama Arayüzü) yazılım bileşenleri arasında bir iletişim arayüzüdür.
Ana işlevlerden biri, programlamada soyutlamaya ulaşmak için bir yöntemi temsil etmenin yanı sıra, yaygın olarak kullanılan bir dizi işlev sağlamaktır.
API (Application Programming Interface/Uygulama Programlama Arayüzü) Nedir?
API, belirli bir kütüphanenin bir soyutlama katmanı olarak diğer yazılımlar tarafından kullanılmak üzere sunduğu işlevler ve prosedürler kümesidir. Genellikle kütüphanelerde kullanılırlar.
Özellikleri
Bir programlama arayüzü, yazılım bileşenleri arasındaki bir iletişim arayüzünü temsil eder.
İşlemlerden belirli hizmetlere erişim sunan ve genellikle yazılımın alt ve üst seviyeleri veya katmanları arasında programlamada soyutlama elde etmek için bir yöntemi temsil eden belirli kütüphanelere çağrı kümesidir.
Bir API’nin temel amaçlarından biri, örneğin pencereleri veya simgeleri çizmek için yaygın olarak kullanılan bir dizi işlev sağlamaktır.
Bu şekilde, programcılar, işlevselliğini kullanarak, her şeyi en baştan programlama çalışmalarından kaçınarak API’nın avantajlarından yararlanırlar.
API’ler, belirli bir API’nin genellikle bu API’nın uygulanması olarak adlandırılmasını sağlayan soyut yazılımlardır.
Örneğin, ekranda farklı soyutlama düzeylerinde Merhaba Dünya yazdırma işlevleri;
- Bir İşi Baştan Yapma: Grafik kağıt üzerinde, “M, e, r, h, a, b, a, D, ü, n, y, a” harflerini harf sırasına benzeyen siyah beyaz karelerden oluşan bir matris oluşturur. Daha sonra montaj talimatlarını kullanarak dizi bilgilerini ekran arabelleğine yazar. Doğru talimatı kullanarak, grafik kartının bu bilgileri ekrana dökmesini sağlar.
- İşin Bir Kısmını Yapmak İçin İşletim Sistemi Kullanma: İşletim sistemi tarafından sağlanan bir yazı tipi yüklenir bu yazı tipini kullanarak işletim sisteminin “Merhaba Dünya” metnini yazması sağlanır.
- İşin Çoğunu Yapmak İçin Bir Uygulama Kullanma: Google Chrome, Mozilla Firefox, Opera veya İnternet Explorer gibi bir Web tarayıcısının monitörde görüntüleyebilmesi için “Merhaba Dünya” kelimelerini içeren bir HTML belgesi oluşturulur.
Gördüğünüz gibi, ilk seçenek, her biri bir sonraki seçenek adımlarından çok daha karmaşık olan daha fazla adım gerektirir.
Ayrıca, ekrandaki ansiklopedik bir makale gibi büyük miktarda bilgiyi temsil etmek için ilk yaklaşımı kullanmak pratik değildir. İkinci yaklaşım ise bir adımı ortadan kaldırarak ve gerisini daha kolay hale getirerek görevi basitleştirir ve üçüncü yol yazmayı gerektirir.
Bununla birlikte, üst düzey API’ler genellikle esnekliği kaybeder. Örneğin, bir web tarayıcısında metni titreyen bir çerçeveye sahip bir nokta etrafında döndürmek, düşük bir seviyede programlamaktan daha zordur.
Bir API kullanmayı seçerken gücü, sadeliği ve esneklik kaybı arasında belirli bir denge kurulmalıdır.
Veri Gönderme İşlemleri İçin API Uygulamaları
- Uzaktan Yordam Çağrıları (RPC’ler)
RPC’lerle, programlar paylaşılan bilgi arabellekleri üzerinde çalışan yordamlar aracılığıyla iletişim kurabilir.
- Standart Sorgu Dili (SQL)
Uygulamalar arasında veri alışverişine izin veren ve ortak veritabanlarına erişen yordamsal bir veri erişim dilidir.
- Dosya Aktarımı
Uygulamalar arasında biçimlendirilmiş dosyalar göndererek veri alışverişini etkinleştirir.
- Mesaj Gönderme
Eşleştirilmiş uygulamalar arasında biçimlendirilmiş küçük mesajlar aracılığıyla doğrudan programlı iletişim yoluyla veri alışverişi sağlar.
Programlama Arayüzleri
Programlama arayüzleri için Microsoft WMI, Microsoft Win32 API’si, Microsoft Framework .NET, OpenGL, Java EE, SCSI için API, Macintosh İşletim Sistemi için Karbon API’leri, Ortak Nesne İstek Aracısı Mimarisi (CORBA), PHP için Symfony ve Drupal API’sini örnek verebiliriz.
Ağ Erişim Arayüzleri
API’ler herhangi bir platform ve işletim sistemi için veya tüm bu sistemler için aynı anda geliştirilebilir.
Ayrıca birkaç yıldır web servislerine erişmenin bir yolu olarak gelişmektedirler. Bu anlamda, en iyi bilinen API’ler; Google Arama, Flickr, Amazon, Google Haritalar’dır.
API Kullanımının Faydaları
İyi bir API, programın geliştirilmesini kolaylaştırır, çünkü onu oluşturmak için tüm blokları sağlamalıdır. Programcı sadece tüm blokları bir araya getirir.
API, API kullanan tüm programların benzer arayüzlere sahip olacağını garanti ettiği için programcılar için özel olarak tasarlanmıştır.
Bu, kullanıcının yeni programların mantığını öğrenmesini de kolaylaştırır.
Bir istek yapıldığında, sunucu API’yı arayarak daha fazla sayıda hizmete sahip olma avantajını sunar.