API (Application Programming Interface) Nedir ?
Hepinize merhaba dostlarım 😊. İnanılmaz derecede geçen bir haftanın karşısında tekrardan sizlerle beraberim 😊. Farklı teknolojilerle çalışmaya başladığım şu zamanlarda birçok yorgunlukla da karşılaşmıyorum değil. Ama bu benim için bir yorgunluktan çok makale konusu oluşturmaya itiyor bu konuda hemfikiriz 😅. Hatta bu makale konusunda da şu son 2 haftadır uğraştığım teknolojiden bahsedeceğim 😉.
Normalde bunu editörlerimizi açarak yapmayı isterdim lakin sektöre yeni giren dostlarımla da konuşurken az çok aşina olduklarını lakin tam olarak ne olduğunu anlayamadıkları için ben de bu makaleyi yazma kararı aldım 😊. Siz sormadan ben makalenin başlığını belirtmek istiyorum
Bu makalemizde API Teknolojisi hakkında konuşacağız :)
O halde hazırsak çayınızı kahvenizi alın ve arkanıza yaslanıp beni dinleyin 😊. Konuya başlıyoruz
Nedir Bu API Teknolojisi ?
Eveeeet dostlarım. Artık konumuza giriş yapabiliriz. En başta da dediğim gibi herhangi bir kodlama yapmayacağız. Şimdi gelelim konumuza
Dostlarım API kelimesini sıklıkla duymuşsunuzdur ve duymaya da devam ediyorsunuz. Güzel bişey hiç duymasak sıkıntı büyük derim. Açılımı Application Programming Interface olan API kelimesi birbirinden ayrı yazdığımız yazılımların birbiri ile haberleşmesini sağlayan teknolojidir diyebiliriz. Biraz teorik oldu ama hemen onu da hayata dönük örneklerle anlatayım
Örneğin dostlarım şimdi bizim bir projemiz olsun. Bu bir e-ticaret web sitesi olabilir veya blog sistemi olabilir. Tamam bu kısma kadar her şey normal. Ama bizim canımıza tak etti ve bunun mobil uygulamasını da yazmak istedik. Tamam o da güzel. Ama bizim web sitemizdeki verilerimizle uygulamamızdaki verilerimiz eşlelşemsini istiyoruz. Örneğin:
- Ürünlerin listelenmesi
- Toplam ürün stok adetlerinin doğru biçimde olması
- Slider vs. kısımların aktif olması
gibilerinden olabilir. Daha da artırılabilir. Tamam bu kısma kadar ta anladık. Şimdi akıllardaki soruya gelelim
Bunu nasıl gerçekleştircez ?
Şimdi normalde yazılımda api yazmamış ama kodlama yapan birçok kişinin (ben de dahil 😉) aklına bot yazmak gelir. Amaaaaa işte sıkıntı burada başlıyor. Tamam bot yazılır yazılmasına da bunda da iki sıkıntı var
- Karşı siteden gelen verileri regex ile parçalama sonrasında karşı site yenilenirse uygulamada revize
- Hadi hepsini geçtik karşı site botları engelliyorsa ne yapcaz
şimdi bu dediklerim karşı sitede varsa bizim halimiz
şeklinde oluyor. Cidden öyle oluyor birkaç kez yaşadım diyebilirim.
İşte dostlarım bu durumla karşılaşmamak için bizim harici bir dosyada gelen isteklere göre veri tabanından işlem yaparak sonucunu JSON formatında döndürüp kullanıcıya sunacağız. Json yapısı evrensel veri tipi olduğundan daha rahat parçalanır ve daha düzenlidir diyebilirim. İşlemi hızlıca yapabiliriz.
Gündelik hayattan örnek vermemiz gerekirse dostlarım örneğin bir restauranta yemeğe gittiniz varsayalım. Orada sizin garsona sipariş verdiğinizde olaylar aslında şöyle oluyor:
Yukarıdaki örnekten hareket edecek olursak:
- Biz: İstemci (Mobil Uygulama)
- Garson: API (Bizim isteklerimizi alan ve gerekli sonucu bize ileten)
- Şef: Sunucu (Bizim iseklerimizi işleyen ana mekan)
şeklinde yorumlayabiliriz. İşlemler bu kadar ama bunları da ilerleyen zamanlarda daha içine girerek anlatcam dostlarım 😊. Şimdi gelelim bir diğer sorumuza
Hangi Dilde Yazılmalı ?
Gelelim bir diğer kısmımıza dostlarım. Bu konuda aslında dil sınırlaması yok diye biliyorum dostlarım. Yani her dilde yazılıyor mu yazılmıyor mu tam bilmiyorum ama şunu örnekle diyebilirim size:
Mobil programlama dilleriyle bir uygulama yazdınız veya masaüstü bir program yazdınız varsayalım. Tamam bu kısma kadar okeyiz. Bu uygulamalarımız web sitesi üzerinden veri alıp uygulamaya sunacak ki API nin mantığı da bu zaten. Bu kısımda şöyle bir yapı olabilir:
- Web Sitesi: .Net Core, PHP, Node.JS, Django
şeklinde olabilir. Bu kısımda da yazılımcının yazdığı API türü C#, PHP, Javascript , Python olarak farklılık göstermektedi. Bu daha da uzayıp gidebilir diye düşünüyorum. Ama benim bildiklerim ve sektörde, yakın arkadaşlarımda gördüklerim bunlar dostlarım 😊. Bu kısmı da kavradığımıza göre artık bir diğer sorumuza geçelim
Her Yazılımda Mecbur Olmalı Mı ?
Dostlarım bu konuda şöyle bir yorum yapabilirim ben. Mesela bir siteniz var diyelm ya da bir otomasyon yazdınız hiç farketmez. Eğer bu atıyorum Mobilde ya da Masaüstünde de ayrı bir uygulama yazılacak bir proje ise kaçışınız yok mecbur yazacaksınız diyebilirim 😊.
Şöyle bir durum da var dostlarım. Siz eğer sadece bir site yaptınız ama bu sitenizin arka planında .Net Core, Laravel kullandınız, ön planında da Angular, React.js, Vue.js gibi yazılımları kullandınız gibi durum varsa, İster mobil uygulama veya masaüstü uygulama yapılacak - yapılmayacak durumları olsun hiç farketmez. O apiyi kesinlikle yazacaksınız 😊
Eveeeet dostlarım. Bu makalemde sizler elimden geldiğince dilim döndüğünce "API (Application Programming Interface) Nedir ?" konusunu elimden geldiğince dilim döndüğünce anlatmaya çalıştım. Umarım faydalı olmuşumdur. Eksik vey hatalı bir anlatım yapmış isem benimle iletişime geçmekten çekinmeyin 😊. Konu başlarda biraz karmaşık veya zor gelebilir dostlarım anlıyorum. Özellikle öğrenme sürecinde bu gibi durumların olması son derece doğaldır. Bu süreç içerisinde sizlerden istediğim tek şey her yazımda da dediğim gibi "İstikrarlı ve azimli olmalısınız, Bolca pratik yapmalısınız 😊". Bu dediklerimi hayat felsefeniz yaptığınız sürece başarı sizler için kaçınılmaz olacaktır.
Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim 😊
Yazar Hakkında
Kendi Halinde Bir Backend Developer