• ks. application programming interface.. yani ne diyor "uygulama programlama arabirimi". demek ki uygulama programlamak icin saglanan arabirimlere grup olarak api deniyormu$.

    misal

    (bkz: win32 api)
    (bkz: vapi)
  • ekşi sözlük'ün sahip olmadığı.
  • ilk kez duyulduğunda veya ilk kez anlamaya çalışıldığında oldukça kompleks ve soyut gelen bir kavram iken, üzerine çalışıp oynanmaya başladığında, size farklı kapılar açıp, yepyeni fikirlere sürükleyen mükemmel bir araçtır: (bkz: application programming interface).

    şimdi yeni başlayanlar için: api 101:

    api aslında bir nevi bir iletişim aracıdır. ve bu iletişimin olacağı ilişki, client-server ilişkisidir.
    bu ikisi arasında iletişimi sağlayan aracı ise api'dır ve request-respond şekilde bir iletişimin kurulmasına vesile olur.

    olayı somut bir şekilde anlamak için çok basit bir örnek vereceğim:
    mesala düşünün, anneannenizin yaptığı çok güzel bir çorba var. ve siz bu çorbanın tarifini istemek için onu arayacaksınız ama çok meşgulsünüz o an. bu yüzden çocuğunuzdan rica ediyorsunuz, diyorsunuz ki işte bu adrese/numaraya bir mesaj atıp bu istediğim çorbanın tarifini sorabilir misin? çocuğunuz da gidiyor ve bu bilgiyi istiyor. ve anneanneniz çocuğunuza bu tarifi yazılı şekilde gönderiyor.

    bu durumda sizin çocuğunuz “api” görevi görüyor yani bir aracı. sizin ricanız bir (bkz: request) ve anneannenizin gönderdiği tarif ise (bkz: json) (bkz: respond).
    ve sizin bu spesifik olarak istediğiniz çorbanın adı ise bir (bkz: id) ve tüm çorbaları değil de, bu istediğiniz çorbanın tarifinin gelmesini sağlıyor.

    api'lar aynı bu örnekteki çocuk gibi çalışır. ona verilen istek yani “request” komutuna göre hangi dataya ulaşılmak istendiğini belirtirler, karşılığında ise bir cevap alırlar ve bu cevabı size iletirler.

    şimdi diyebilirsiniz peki benim bununla ne işim var, yani neden ben kendi kendime ulaşmıyorum da böyle bir aracı kullanıyorum?

    ancak maalesef çok küçük programlarda dediğiniz gibi ulaşılacak tüm bilgileri kendiniz araştırıp ulaşabilecekken, bir çok kapsamlı program için bu yeterli olmayacaktır ve size zaman kaybı ortaya çıkaracaktır.
    bir örnek üzerinden anlatacak olursam, misal düşünün bir web-projesi yapıyorsunuz ve bu projede diyelim ki şu an da tüm dünyada olan shell benzin istasyonların adreslerine tek tek ulaşmanız ve bununla ilgili bilgi göstermeniz gerekiyor.
    gidip tüm dünyadaki her ülkeyi, şehirleri, mahalleleri araştırıp adreslerini mi ayıklayacaksınız? elbette bu mümkün olabilir ama böyle bir şeyi yapmaya çalışmak zaman kaybından başka bir şey olmayacaktır. bunlar yerine (bkz: google maps) api'ına ulaşıp json olarak istenilen datayı alıp sonra çok kısa bir işlemle parse edip kullanıma hazır hale getirebilirsiniz.

    ama diyelim ki siz tüm dünyada shell istasyonlarındaki güncel diesel gas ücretlerini takip edeceğiniz ve bilgi vereceğiniz bir site üzerine çalışıyorsunuz, ve shell istasyonlarının api'i yok. bu durumda ne yaparsınız?

    bu tip durumlar için yazılımcılar kendi gereksinim doğrultularında hazırladıkları api'lari public olacak şekilde ya repository şekilde kullanıma ya da satışa sunmuşlardır.
    aynı şeyi sizin de yapmanız mümkün elbette. bu tip durumlar için ise rapid api sitesini (bkz: rapidapi) kullanabilirsiniz. ulaşılan veya hazırlanan api'lara izin verildiği taktirde siz de aynı şekilde belirli komutlarla data ekleyebilir, değiştirebilir veya çıkartabilirsiniz.

    yalnızca bunlarla da kalmaz, istediğiniz kadar farklı türde api'i bir programda veya web sitenizde kullanabilir ve zaten var olan büyük şirketlerin teknolojilerin nimetlerinden yararlanabilir ve çok daha farklı projeler geliştirebilirsiniz. mesala yukarıda örneklendirdiğimiz bu benzin fiyatlarına dair bilgi veren sitemizde, (bkz: whatsapp) api'i kullanarak, sitedeki benzin fiyatları kullanıcının istediği fiyata düşünce, ona whatsapp üzerinden bildirim veren bir sistem kurmak gibi.

    kısacası hem uğraşması hem kullanması zevki bir teknolojidir, creative becerilerinizi ve bir proje üretme hızınızı arttırır.

    edit: imla
  • şirket içerisinde diğer birimlerin kullanacağı bir api hazırlıyorsanız, mutlaka ama mutlaka hangi parametrelerle api methodlarının çağırıldığını loglayın sevgili suserlar. yoksa bik bik bik bik.... uğraşır durursunuz. bir hata durumu olduğunda, bir iddia ile geldiklerinde, çıkartır masanın üzerine koyarsanız ( loglarınızı ) o zaman kendinizi koruyabilirsiniz.
  • sozlugun sahip olmasi gerekendir. oauth tabanli, sadece suser'lerin faydalanabilecegi bir api gelistirilse cillop olur.
  • web icin backend api gelistirirken route ismi olarak ads, advertisement gibi reklam ile ilgili kelimeler kesinlikle kullanilmamali. cunku browser uzerinde kullanilan ad blocker eklentileri yapilan request'leri blokluyor.

    icinde ads bulunan route'a postman ile sorunsuz gonderilen isteklerin neden browser'dan gonderilince server'a ulasmadigini cozmek icin 45 dakikami heba ettim.

    bir yandan da ad blocker localhost uzerinde iyi ki calisir durumdaymış, proje yayina gitmeden problemi farketmis oldum.
  • ks. active pharmaceutical ingredients
  • son dönemin heyecan verici startup’ları arasında bir çok api tabanlı hizmet sağlayıcı var. biz, son kullanıcılar olarak çoğu zaman apı tabanlı şirketlerin isimlerini bilmeden onları sağladığı hizmetten yararlanırız. bu sistemler gizli kahraman tanımını sonuna kadar hak ediyor. apı tabanlı heyecan verici startup’lardan belki de en ünlüsü, ödeme dünyasından stripe. stripe’ın apı’sinini sitenize entegre ederek birkac dakika içinde ödeme almanız mümkün hale geliyor. türkiye’de iyzico’ya benzetebileceğimiz stripe, sirketlere sağladığı birkaç satırlık kod ile bankalardaki prosedürleri ortadan kaldırıyor. çok zahmetli ve maliyetli bir işin önüne geçtiği için de değeri her geçen gün artmaya devam ediyor. en son yatırımını 2019 yılında 35 milyar dolar değerleme üzerinden alan şirketin ıpo’sunu kendi adıma merakla bekliyorum.

    bir başka apı tabanlı başarılı şirket de twilio. twilio 2016 yılında halka açıldığında piyasa değeri yaklaşık 1.2 milyar dolardı. o günden bugüne sürekli yükseliş trendinde olan şirketin, bu çalkantılı döneme rağmen bugünkü piyasa değeri yaklaşık 15 milyar dolar. twilio, şirketlere ses, video, mesajlaşma ile müşteriyle iletişim kurabileceği bir apı sunuyor. yani, dünyadaki iletişim ağlarını birbirine bağlayan ve optimize eden bir yazılım katmanı. sundukları apı ile kimlik doğrulama ve toplu e-mail gönderimi de mümkün. uber, lyft, airbnb, walmart veya netflix kullandıysanız, muhtemelen twilio da kullanmışsınızdır. dünya genelinde 40.000'den fazla işletmeye hizmet veriyorlar.

    visa tarafından 5.3 milyar dolar ödenerek satın alınan plaid de apı tabanlı bir hizmet sağlayıcı. plaid tüketicilerin banka hesapları ile fintek girişimleri arasında köprü kuruyor. finansal ekosistemde büyük bir dönüşümün başladığını görüyoruz. fintek’ler daha önce hiç görmediğimiz bir hızda endüstrinin geleceğini şekillendiriyorlar. fintek, bağımsız bir kategori yerine herhangi bir şirketin önemli bir parçası haline gelmiş durumda. özünde finansal işletme olmayan şirketler, ürün geliştirme sürecini hızlı ve kolay hale getiren araçlara ve altyapılara ihtiyaç duyuyorlar. bu noktada, pis işleri yapmaları sebebiyle tesisatçılar adı verilen plaid gibi yazılımlar devreye giriyor. plaid gibi çözümler, geliştiricilerin eski sistemlerin üzerine hızlı ve kolay bir şekilde uygulama geliştirmelerini sağlayarak muazzam bir değer oluşturma potansiyeline sahipler.

    lumost'un 12. bölümünde apı tabanlı hizmet sağlayıcılar var. konuya ilgi duyanlar için tavsiye edilir:

    visa plaid'i neden satın aldı?
  • yazılımın bileşenlerinin birbiriyle iletişim kurmaları için kullanılan araç.
    kullanıcının programının şirketin veri tabanlarında depolanmış verileri almak için kullandığı komutlar kümesi.
    örneğin flickr'ın api'ı, sadece belirli bir gruptaki bütün fotoğrafları ve bu fotoğraflara ilişkin fotoğrafın byte olarak büyüklüğü, çekildiği yer, fotoğrafı beğenenler gibi özellikleri vermektedir.
  • google ın android cihazlarda geliştirilen konumsal uygulamalar için sağladığı api si can kurtarır. tek şifre ile harita elde edebilir harita üzerinde uygulamalar geliştirebilirsiniz. tek olumsuz yanı api yi uygulamanıza eklediğiniz anda konum bulma ve en kısa rota çizdirme gibi directions api lerinin disable olarak gelmesidir.
    (bu hususa dikkat edin, bu sebepten hazırladığım proje 2 hafta gecikti.)

    hali hazırda konumsal uygulama ve harita analizi üzerine pek fazla uzman bulunmayan güzide ülkemizde, az da olsa programlama bilgisi ile konumsal analiz geliştirebilir ve bu alanda ilerleyebilirsiniz.
hesabın var mı? giriş yap