API NEDİR ?

Api’ları dünyamızın bilinmeyen kahramanları olarak düşünebilirsiniz… iki veya daha fazla uygulamayı birbirine bağlayarak dünyayı parmaklarımızın ucunda tutmamızı sağlıyorlar.

API’ın açılımı “Application Programming Interface” yani “Uygulama programlama arabirimi “ anlamına gelmektedir. Bir tanım yapmak gerekirse; API, uygulama yazılımı oluşturmak ve entegre etmek için bir dizi tanım ve protokoldür. Geliştirilen uygulamaları oluşturabilmek için yordam, protokol ve araçların kullanılmasıdır.

Özetlemek gerekirse api, isteğinizi istediğiniz sağlayıcıya çalıştıran, ileten ve ardından yanıtı size geri gönderen habercidir. Telefonunuzda bulunan bir çok uygulama ile aslında api kullanmış oluyorsunuz.

⭐Farklı bir meslekten arkadaşına bunu nasıl anlatırsın deseler ??

Dijitalleşme ile popülerleşen “istegelsin” uygulamasını bilmeyen yoktur. Teknolojik aletlerden yiyeceklere, tekstilden kozmetiğe bir çok türden ürün uygulamada kategorilere ayrılmıştır. Buradan ihtiyacınızı sipariş verdiğinizde kısa sürede evinize ulaşmaktadır.

Uygulamaya girip katalogdan istediğiniz ürünü seçip son aşama ile siparişi tamamladığınızı düşünün. Uygulama siparişinizi alır ve teslimat için fatura oluşturur. Kuryeye ne yapacağını söyler. Daha sonra, uygulamadan(API) gelen yanıtı yani siparişinizi size iletir.

Mesela bir uygulama geliştirdim ve bu uygulamadan bana her gün saat 12 de çalışıp bir sonuç veya tablo gelsin istiyorum. Uygulamamın önüne bu işi rutin şekilde yapması için bir script yazıyorum. İşte bu scripti API gibi düşünebilirsiniz. Benim uygulamamın daha işlevsel olmasını sağlayıp, istediğim zaman diliminde çalışıp sonuç getirmesini tetikliyor.(umarım doğru bir örnek olmuştur)

Yani oluşan herhangi bir isteğe göre, istek yapan uygulama tarafına bir veriyi hızlıca işleyerek bir sonuç döndürerek talebin karşılanmasını bana api sağlamış oluyor.

👉API harflerini açacak olursam :

  • Application: Uygulama derken, bir geliştiricinin etkileşim kurmak istediği bir hizmeti kastediyoruz. Hizmet denen şey; bir meteorolojik veri akışı, bir görüntü paylaşım uygulaması veya açık bir veri portalı olabilir.

  • Interface:(Arabirim) Arayüz hizmetin giriş kapısıdır. Hizmet özellikeriyle etkileşime girmek için bu kapıdan geçtiğinizi düşünebilirsiniz. (örneğin, bir şehir için meteorolojik verileri filtrelemek, instagram’da fotonuzu yayınlamak vs…)

  • Program: Program, geliştirici tarafından yazılmış kodlanmış yordamlar kümesidir. Program uygulama ile etkileşim için tasarlanmıştır.

şekil1

👉 Peki API ne yapar?

  • sizin uygulamanızın başka bir uygulamayla iletişim kurmasını sağlar. Bunu yaparken nasıl uygulandığını bilmek zorunda değildir.
  • API, bir geliştiricinin bir hizmete erişmesine izin verir.Genellikle bir API’NİN bir hizmeti sunduğunu söylenir… Söylediğim gibi; servis birçok şekil ve biçimde olabilir: gerçek zamanlı veri akışları (ör. Twitter), haritalar (OpenStreetMap), bir resim yayınlama (Instagram) gibi.
  • Bir API, bir yazılımın kompanentlerini işlemler, girdi-çıktılar ve temel türleri açısından ifade eder. Geliştiriciler ise bu API’leri kullanan programlar yazar.
  • Uygulama geliştirmeyi basitleştirebilir, zamandan ve paradan tasarruf sağlar.
  • Yeni araçlar ve ürünler tasarlarken veya mevcut olanları yönetirken, API’ler size esneklik sağlar.
  • API’ler, bulut tabanlı uygulama geliştirme yoluyla kendi altyapınızı kurmanızın basitleştirilmiş bir yoludur. Verilerinizi müşterilerle ve diğer kullanıcılarla paylaşmanıza da olanak sağlar.

Public api herkese açıktır. Üçüncü parti yazılımların API’ınızla etkileşime giren ve yenilik için bir kaynak olabilecek uygulamalar geliştirmesine olanak tanır.(Google Haritalar API’sı popüler bir örnektir). Veri isteği yaptığınız apı’lar genelde json formatındadır. Anahtar ve değer çifti olarak bir sözlük gibi okunur. Veriler tarayıcı aracılığı ile işlenir. Ardından istenen sayfa veya konsolda görüntülenebilir.

📌 Bir metaforla anlatacak olursam : Apı’ların özünü anlamak adına, elektrik ağını bir proxy olarak kullandığımızı varsayalım. Bir elektrik şirketi düşünelim:

  • burada tedarikçi bizlere hizmet olarak “elektriği” üretir ve dağıtır.
  • bu servisi dağıtmak için tedarikiçi, “elektrik şebekesi” (istasyonlar, iletim hatları, elektrik direkleri, prizler) altyapısına dayanır.

Şimdi ihtiyacımız gereği elektrik tüketmekte olan bir lamba almak istersek:

  • lambanın çalışması için elektrik şebekesine bağlanması gerekmekte.
  • bağlanacak olan lamba standartları yuvaya uyan bir fişle satılmaktadır.
  • yuva, bir lambanın elektrik tükettiği standart bir giriş noktasıdır (bir arayüz). ‘’‘Burada API, bir programın bir uygulamayı tükettiği standartlaştırılmış bir giriş noktasıdır (arayüz).’’’

API’ler, geliştiricilerin tüketmeleri gereken bir hizmeti devredebilmelerini sağlar. Aynı şekilde lambanın sahibi, lambasının ihtiyaç duyduğu elektriği elektrik tedarikçisine devreder.

Daha derin düşünrsek: API’ler ve elektrik prizleri, kullanıcının hizmeti nasıl kullanabileceğini belirtir. Lambanızın hizmeti kullanmak için bazı koşullara uyması gerekir: pimlerin sayısı ve şekli, voltaj ve frekans, akım türü vb…

API’lar aynı şeyi yapar ve bunları kullanmak için koşulları belirtir:

Belirli bir zaman dilimi için “API çağrısı sayısı”, “okuma veya yazma” yapması, vb…

Soketlerin standartlaştırılması sayesinde, evinize istediğiniz sayıda lamba takabilirsiniz.

Önemli olan her soketin işlevsel olarak elektriği evinize getirmesi gibi.

API’lar ve soketler sundukları hizmetin soyutlamasıdır. Soyutlamnma ile hizmetin arka planda yürüyen gerçek teknik kısım müşterinin kullanımından gizlidir.

Eğer açık api’lar olmasaydı en basitinden bir şirket sitesinin iletişim sayfasında insanlara sunduğu haritasını google maps api’den almak yerine kendi sağlamak zorunda kalırdı.

Api’lar veritabanı değildir. Veritabanını yöneten aracıdır demek daha doğru. Sonuç olarak bir uygulamanın verilerini başka uygulamanın isteği doğrultusunda ona dahil eder..


Bu yazım, https://medium.com/@sumeyyekilic/ ‘ da 25 Mayıs 2020 tarihinde medium sayfamda yayınlanmıştır.