HDG Açıklıyor: API Nedir?

Kafa karıştırıcı ve tanıdık olmayan kısaltmalarla(confusing and unfamiliar acronyms) dolu bir internette , kafanın karışması kolay olabilir. Duymuş olabileceğiniz, ancak bakmaktan asla ilham almadığınız bir web kısaltması “API”dir.

API nedir ? API , uygulama programlama arabiriminin( application programming interface) kısaltmasıdır ve yazılım uygulamaları oluşturma sürecini çok daha kolay hale getiren bir dizi rutin ve protokolün adıdır.

Bir API'ye(API) bakmanın basit bir yolu, bir yazılım parçasının bileşenlerine nasıl etkileşimde bulunacaklarını söyleyen bir yol haritası gibidir. API kullanılmadığında , kaynak kodu karışık, kafa karıştırıcı bir karmaşa gibi görünebilir.

Ancak, API'ler(APIs) karmaşıktır ve kısa bir özetlemeden fazlasını gerektirir. Bu makalede, API'lerin(APIs) nasıl çalıştığını ve hangi sitelerin ve hizmetlerin bunları kullandığını gözden geçirelim .

API Nedir ve Nasıl Çalışır?(What Is An API and How Does It Work?)

Artık bir API'nin(API) yazılımı doğru yöne yönlendiren bir dizi rutin olduğunu belirlediğimize göre, tüm bunlar tam olarak nasıl çalışıyor?

Bir API'nin(API) temel işlevselliğini açıklamanın en iyi yolu , gerçek dünyadan bir örnek sunmaktır. GrubHub gibi yemek(Food) dağıtım hizmetleri şu anda inanılmaz derecede popüler, bu yüzden bunun gibi mobil uygulamaların arkasındaki kodun nasıl çalışabileceğini tartışalım.

Bu uygulamalardan birinde bir restoran veya yiyecek öğesi aradığınızda, anahtar kelimelerinize ve konumunuza göre alakalı sonuçlar alırsınız. Bir sonuç seçtikten sonra size gıda maddesi seçenekleri, teslimat süreleri ve restorana özel daha fazla seçenek sunulur.

Teslimatınızı planlamak için, teslimat web sitesi ile bir veritabanı arasında bir bağlantı kurulmalıdır; web sitesi ön uç ve veritabanı arka uçtur. Veritabanı, tüm bu restoranlar için verileri, konum bazında uygunluklarını, operasyon programını, menüleri ve daha fazlasını depolayan şeydir.

API , bu veritabanı ile verilerini sunan web sitesi veya uygulama arasındaki bağlantıdır. Bu bağlantıyı oluşturmak için sabit kodlanmış verileri kullanmak yerine, öncelikle üçüncü taraf entegrasyonlarının popülaritesi nedeniyle  bir API'nin(API) mevcut olması önemlidir .

Örneğin, üçüncü taraf toplayıcıların mevcut tüm restoranları ve öğeleri listeleyip organize edebilmesi bir web sitesi için faydalı olurdu, değil mi? API olmadan , verimsiz web kazıma teknikleri kullanılmadan bu mümkün olmazdı.

API , bir web sitesi, mobil uygulama veya başka bir şey olsun, veri tabanından uygulamaya veri teslim etmekten sorumlu arayüzdür. API'ler(APIs) , web üzerinden uygulama verilerine erişmenin ve bunları iletmenin standart yolu haline geldi ve üçüncü taraf bağlantısına bağlı olan her büyük web sitesi veya hizmet, bir tane sağlayarak büyük fayda sağlıyor.

Ne Tür API'ler Vardır?(What Types Of APIs Are There?)

Çok sayıda farklı API protokolü türü vardır, ancak en popüler üç tanesi SOAP ( Basit Nesne Erişim Protokolü(Simple Object Access Protocol) ), REST ( Temsili Durum Aktarımı(Representational State Transfer) ) ve RPC'dir(RPC) ( Uzaktan Yordam Çağrısı(Remote Procedure Call) ).

SABUN API'leri(SOAP APIs)

SOAP ilk olarak 1990'ların sonlarında tanıtıldı ve uygulamaların ağ bağlantılarını kullanarak kaynakları basit bir şekilde paylaşmasını sağladı. SOAP , bu tür protokollerin popülaritesi nedeniyle hemen hemen her ortamda kullanılmasını sağlayan HTTP ve SMTP gibi standart protokollere dayanır .

Başlıca gücü, yaygın olarak kullanılması ve kurulmasıdır. Bozuk değilse tamir etme.

REST API'leri(REST APIs)

REST, 2000 yılında Roy Fielding tarafından tanıtıldı . Öncelikli hedefi, SOAP'ın(SOAP) yaygın olarak benimsenmesinin yarattığı birçok soruna bir yanıt olarak hareket etmekti .

SOAP'a(SOAP) benzer şekilde , REST , uygulamalar arasında bilgi aktarmak için HTTP'ye(HTTP) güvenir . Ancak, verilerin XML(XML) veri formatı aracılığıyla iletilmesini gerektiren SOAP'tan(SOAP) ayıran önemli bir fark, JSON'u(JSON) desteklemesidir . JSON , birçoğunun okuması ve yazması daha kolay olduğu konusunda hemfikir olduğu bir veri formatıdır. Ek olarak, REST API'leri(REST APIs) verileri önbelleğe alarak çok daha iyi performans sağlar.

Cloud Elements tarafından hazırlanan 2017 raporuna göre, REST artık tüm API'lerin(APIs) %80'inden fazlasını oluşturuyor .

RPC API'leri(RPC APIs)

RPC API'lerinin birçok çeşidi vardır, ancak (RPC APIs)REST API'lerinden(REST APIs) öğrendiğimiz gibi , JSON çok popüler bir veri formatıdır, dolayısıyla JSON-RPC en popüleridir.

JSON-RPC , minimalistler ve (JSON-RPC)API'lerinin(API) basitliğine güvenen kullanıcılar için en uygun protokoldür . SOAP ve REST ile karşılaştırıldığında kapsamı çok daha dardır ve esnekliği ve komut kümesi açısından çok sınırlıdır - ancak bazı geliştiriciler için daha az, daha fazladır.

gRPC gibi başka RPC tabanlı API türleri de vardır, ancak önceliğiniz uygulamanın basitliğiyse, JSON-RPC tercih edilir.(JSON-RPC)

API'leri Kimler Kullanır?(Who Uses APIs?)

Ön uç veya arka uç olsun, her türden geliştirici, API'lerle(APIs) çalışma deneyimine sahip olmalıdır . Web siteleri veya web hizmetleri açısından, neredeyse tüm büyük oyuncuların bir çeşit API'si(API) vardır - en belirgini Windows .

Microsoft Windows gezegendeki en popüler işletim sistemi olduğundan, uygulama geliştiricilerin kendi kullanıcı arayüzüyle nasıl etkileşim kuracakları konusunda bir dizi yönergeye ihtiyaç duyması doğaldır . Windows API'sine(Windows API) erişim olmadan , büyük ölçüde işletim sistemiyle etkileşime dayanan bir uygulamayı programlamak büyük bir baş ağrısı olurdu.

Bazıları ücretsiz, bazıları ücretli binlerce API var. (APIs)İşte incelemeye değer birkaç örnek:

API'ler(APIs) , web'in en büyük ve en önemli bazı web siteleri ve uygulamalarının arkasındaki temel bağlayıcılardan biridir. Ortalama bir kullanıcı API'lerin(APIs) sağladığı faydayı göremeyebilir , ancak bunlar geliştiriciler ve web hizmetleri için bir nimettir.



About the author

10 yılı aşkın deneyime sahip kıdemli bir yazılım mühendisi ve görüntüler ve iPhone uygulaması geliştiricisiyim. Donanım ve yazılım konusundaki becerilerim, beni herhangi bir kurumsal veya tüketici akıllı telefon projesi için mükemmel bir uyum haline getiriyor. Yüksek kaliteli görüntülerin nasıl oluşturulacağı konusunda derin bir anlayışa ve tüm farklı görüntü formatlarıyla çalışma yeteneğine sahibim. Ek olarak, Firefox ve iOS geliştirmesine aşinayım.



Related posts