Avantajları:

Türler

  • geri dönüyor. Üçüncü taraf bir uygulama belirli parametrelere sahip bir yöntem talep ettiğinde, sunucu istenen bilgiyi belirli bir formatta sağlar;
  • değiştirme. İstemci, yeni bilgiler giren veya bu bilgilerdeki belirli ayarları değiştiren bazı sunucu işlevlerini çağırır.

Yandex.Direct API'si

API, web sitesi tanıtımı için etkilidir.

  1. Buna dayanarak geliştiriciler, arama motoru hizmetiyle doğrudan etkileşime giren uygulamalar oluşturabilir. Bu tür programlar, reklamverenlerin büyük ölçekli reklamları esnek bir şekilde yönetmelerine, her biri hakkında istatistiksel raporlar almalarına ve bütçeleri doğru bir şekilde tahmin etmelerine olanak tanıyacak.
  2. Direct API'yi kullanarak, reklam ajansları müşterilerinin tam listesini görüntüleyebilir ve müşteriler de temsilcilerini görüntüleyebilir.
  3. Arama motoru optimizasyonu için kullanılan belirli ifadeler içeriğe dayalı reklamcılıkta düşük bir TO sağlıyorsa, bunların görüntülenmesi otomatik olarak devre dışı bırakılabilir. Tematik platformlarda oranları API aracılığıyla ayarlayabilirsiniz; belirli bağışçılar çıkarılabilir.
  4. Yandex.Direct API'nin bir SOAP arayüzü vardır, yani uygulama oluşturmak için çok çeşitli programlama dilleri sunar. Bu protokol Perl, Java, Python vb. diller tarafından desteklenmektedir. Veri alışverişi JSON formatında da gerçekleştirilebilmektedir.

Web geliştirme endüstrisinin yakınında uzaktan bile çalışıyorsanız, şu üç kötü şöhretli mektubu duyacaksınız: API.

Onlar hakkındaki konuşmalar acemiler ve uzmanlar arasında dağılmış durumda:

“Neden bir API çağrısı yapmalıyım? Numarası var mı?

"Bu üçüncü taraf API'ye yapılacak basit bir çağrı, bunu başarmanıza yardımcı olacaktır."

“Sizin için RESTful API oluşturacağız; yeni sisteminizin diğer hizmetlerle iyi çalıştığından emin olun.”

API'ler ilk başta korkutucu görünse de, bir geliştirici olarak hayatınızı tam anlamıyla değiştirebilirler.

Ne için? API'lerin nasıl doğru şekilde kullanılacağını öğrenmek, geliştirme iş akışınızı basitleştirebilir, hızlandırabilir ve güçlendirebilir. API'ler oluşturmak veya entegre etmek hem müşterilerinize hem de kendinize önemli faydalar sağlar.

Geliştiriciler olarak sık sık "tekerleği yeniden icat etmeyin" tavsiyesini duyarsınız:

şaka:
akıllıca tavsiye: tekerleği yeniden icat etmeyin
programcı: tamam
bir daha asla özel kod yazmaz

Şaka bir yana, API'ler tekerleği yeniden icat etmemenizi sağlamada önemli bir rol oynuyor. Snipcart olarak API temellerini anlamanın modern web geliştiricileri için önemli bir beceri olduğuna kesinlikle inanıyoruz. Bu yazıda tam da bunu yapmanıza yardımcı olacağız. Şunları dikkate alacağız:

API kullanmanın faydaları API gerçekte nedir Ne tür API'ler vardır API kullanmanın pratik örnekleri

Peki, bu konuya dalmanın zamanı gelmedi mi?

API'lerin Faydaları: Neden bunları kullanmalısınız?

Programlama kariyerimin ilk ve en önemli adımlarından biri API'yi doğru anlamaktı.

Hala her gün onları kullanıyorum.

İşin özüne girmeden önce, API'yi anlamanın zaman ayırmaya değer olduğuna sizi ikna etmeme izin verin.

Çünkü API'leri kullanmayı öğrenmek, geliştirme verimliliğinizi büyük ölçüde artırır.

İlk olarak, mevcut olanı kullanmanıza olanak tanır. mantık veya parçalar, bunu kendiniz yazmanıza gerek yok. Bazı şeyleri kendi başınıza yazamayabilirsiniz! Bu nedenle, değerli zamandan tasarruf etmek için geliştirici olarak API'nin neye benzediğine dair bir fikre sahip olmak çok önemlidir.

İkincisi, karşılaşacağınız geliştirme sorunlarının çoğu sizden önce başka biri tarafından çözülmüş olacaktır. Bu mevcut çözümler hangi biçimde olursa olsun (FaaS, kitaplıklar, web hizmetleri, SDK'lar, içerik API'leri vb.), onlarla etkileşim kurmak için büyük olasılıkla bir API'ye ihtiyacınız olacaktır.

Peki API nedir?

Resmi ve korkutucu tanım şu:

Bilgisayar programlamada, bir uygulama programlama arayüzü (API), uygulama yazılımı oluşturmaya yönelik bir dizi rutin tanım, protokol ve araçtan oluşur. Genel anlamda, farklı yazılım bileşenleri arasında iyi tanımlanmış bir dizi iletişim yöntemidir. İyi bir API, programcının daha sonra bir araya getireceği tüm yapı taşlarını sağlayarak bir bilgisayar programı geliştirmeyi kolaylaştırır.

Zor, değil mi? Akademik düzyazıyı bir adım aşağıya alalım. İşte bir ev API'sinin daha dostça bir tanımı:

Basitçe söylemek gerekirse, bir API, mantığının etkileşime gireceği bir arayüz bildirir.İçeride neler olup bittiğini bilmek zorunda kalmadan. Bu tanım, bulunduğunuz herhangi bir dile, protokole veya ortama, geçerli olduğu sürece uygulanabilir. program düzeyi(bununla ilgili daha fazlası aşağıda).

API'lere biraz ışık tutmak için ne olmadıklarını listeleyelim:

    Bir API'nin mutlaka harici bir hizmet olması gerekmez. Örneğin, kitaplıkları doğrudan çözümünüze dahil edebilir VEYA bunları bir API aracılığıyla kullanabilirsiniz.

    API, bir arayüzden daha fazlasıdır. Bu hem spesifikasyon/format hem de uygulamadır.

    API bir GUI (Grafik Kullanıcı Arayüzü) değildir. Grafiksel düzeyde etkileşim yapmaz; bir programlama dili veya bir iletişim protokolü aracılığıyla yalnızca yazılım düzeyinde çalışır.

API aynı zamanda bir web kancası değildir. İkisi arasındaki farkı anlamakta sorun yaşıyorsanız Web Kancalarına giriş burada.

Çeşitli API türleri

Tüm API'ler eşit şekilde oluşturulmamıştır.

Çoğunlukla aynı hedefe sahip olsalar da bazıları bunu diğerlerinden daha iyi başarıyor. Bunun sorunsuz bir giriş olması gerektiğinden, API'yi diğerlerinden daha iyi yapan şeyin ne olduğuna girmeyeceğim. Ancak insanların API oluşturmaya yönelik farklı yaklaşımları olduğunu unutmayın. Bu konuyla ilgileniyorsanız, Google "API Tasarım Kalıpları" ve "API Paradigmaları". Veya şu güzel giriş seviyesi makalesiyle başlayın: https://translate.googleusercontent.com/translate_c? / 2017/04/10/api-design-paradigms/&xid=17259,15700019,15700186,15700190,15700248,15700253&usg=ALkJrhg_fNGb7u4_EowoGcThqlUZsxYzow . :)

API'nin amacı geliştirici olarak hayatınızı kolaylaştırmaktır. Nasıl yapıyorlar? Bir özellik/özellik koleksiyonunu birleştirerek ve bu özellikleri uç noktalar (tipik olarak API ile etkileşimde bulunmak için kullanılan URL kalıpları) aracılığıyla kullanıma sunarak. Bu uç noktalar herhangi bir API ile etkileşim kurmanın tek yoludur. Her uç noktanın istekleri ve yanıtları için belirli bir biçimi olacaktır; bu biçimi genellikle API belgelerinde bulacaksınız.

Uç noktalar basit işlevler olabilir veya diğer API'leri çağıran birçok işlevden oluşabilir. Burada önemli olan tek nokta bu fonksiyonların temel mantığının tamamen soyutlanmış olmasıdır. Bunları kullanmak için içlerinde neler olup bittiğine dair herhangi bir bilgiye ihtiyacınız yok. Doğru formatı kullandığınız sürece, bunları uygulamanızdaki bazı kısımları kullanarak, ki bunu söylemenin süslü bir yolu olarak, kullanabileceksiniz.

Sonuç olarak, bir API herhangi bir arayüz gibidir: elektrik akımlarının nasıl çalıştığını biliyor olsanız da, bir ışık anahtarı ışığı açacaktır (ya da genç bir adam olarak, elektrik için çalışması için bir fatura ödemeniz gerektiğini de öğrendim, ancak bu başka bir hikaye.)

API nasıl kullanılır: pratik örnekler

API belgelerini okuma ve anlama

Dokümanlardan her nesne fonksiyonunun giriş formatının ne olması gerektiğini (sayı, sayı dizisi vb.) tanımladığını ve çıktı formatını tanımladığını görebilirsiniz. Ancak bu işlevleri çalıştırma mantığıyla ilgili hiçbir şeyden bahsedilmediğini unutmayın. Örneğin, geliştirici konsolunu ve Math.sqrt'yi çalıştırırsanız (fonksiyonu çalıştırmadan), ƒ sqrt() ( ) gibi bir şey elde edersiniz. API'lerin ruhu budur: İster işletim sisteminizin API'lerinden birini ister bir web API'sini çağırın, bu ilkeler aynı kalır.

Temel API kullanım örnekleri

Popüler API sağlayıcılarıyla yapılacak tonlarca şey var. Örneğin, Google Haritalar API'si genellikle gerçek zamanlı görüntülere ve trafik sinyallerine dayalı verilerle kullanıcı deneyimini geliştirmek için kullanılır. Bir diğer büyük API olan Twitter API, hedeflenen tweetleri gerçek zamanlı olarak filtrelemek ve görüntülemek için kullanılabilir.

Eğer blogumuzu takip ediyorsanız, her şeyden çok web API'leriyle ilgilendiğinizi düşünüyorum. Öyleyse belirli kullanım durumlarına dalalım. Örneklerimizde Postman'ı kullanacağımızı lütfen unutmayın. Tabii ki, bu Rest Client bir web ortamıyla ilişkilidir, ancak bu tür araçlar genellikle diğer ortamlarda da mevcuttur. Belirli bir ortamla oynamaya başlamadan önce, belirli bir ortam için sağlanan araçlara göz atmaya değer; size çok zaman kazandırabilir.

Bizi takip etmek istiyorsanız Postman istemcisini indirmeniz gerekmektedir. https://www.getpostman.com/

Verileri almak için genel API'yi kullanma

İlk örneğimiz oldukça basit olacak ama yine de matematiksel olandan daha ilginç olacak.

Dog API'sini kullanacağız! Sadece eğlenceli bir API değil, aynı zamanda herhangi bir kimlik doğrulaması da gerektirmez. Ayrıca bir HTTP REST API'sidir, yani bir web API'sidir. Bu ortamla ilişkili olduğundan, protokolün bazı spesifik özelliklerine uymamızı gerektirir: bu durumda HTTP fiilleri (GET, PUT, POST, DELETE, vb.). Örneğimizde konuyu basit tutacağız ve yalnızca GET fiilini kullanacağız. Her durumda API başka hiçbir şeyi desteklemenize izin vermez. Çoğu genel API, GET fiili gibi verileri yayınlamanıza değil yalnızca tüketmenize izin verir.

Postman'ı başlatalım ve kullanıcı arayüzünün nasıl göründüğüne bakalım.

Kullanıcı arayüzüm karanlık bir tema kullandığından sizinkinden biraz farklı görünebilir.

İlk başta sindirilmesi gereken çok fazla bilgi olabilir, o yüzden fiil ve URL ile başlayalım.

Varsayılan fiil GET olmalıdır, böylece onu bu şekilde bırakıp aşağıdaki URL'yi girebilirsiniz: https://dog.ceo/api/breeds/list/all

“Gönder”e tıklayın, işte bu kadar! İlgili verileri içeren bir yanıt almalısınız. İşte! Az önce ilk API çağrınızı yaptınız. Şimdi bu örnek için alınan verilerin hiçbirini kullanmayacağız. Ancak bir fikriniz var: Kullanıcınıza farklı köpek ırklarını gösterebilir ve üzerine tıklarsa o cinsin resmini görüntüleyebilirsiniz.

Çevreye aşina olmak için belgelerindeki farklı rotalarla oynayabilirsiniz.

Harika gerçek: Bu küçük proje aynı zamanda açık kaynaktır, dolayısıyla buradan kontrol edebilirsiniz https://github.com/ElliottLandsborough/dog-ceo-api.

Kimlik Doğrulamayı Özel API Kullanarak İşleme

Burada kodu yalnızca Snipcart API'si https://docs.snipcart.com/api-reference/introduction ile etkileşimde bulunmak için kullanacağız. Postacıyı kapatabilirsiniz ama elinizin altında bulundurun; Bir API ile çalışırken böyle bir aracı kullanmak iyidir.

Amaç, müşteriler için tek seferlik kullanım indirimleri oluşturmak için basit bir CLI aracı oluşturmak olacaktır. Bu indirimler bir API aracılığıyla oluşturulacak ve tamamı tamamen bilgisayarınızda gerçekleşecek.

Bu proje için yeni bir klasör oluşturun, klasörde npm init kullanın ve metin düzenleyicinizi yükleyin. Şimdi bir index.js dosyası oluşturun, ardından package.json dosyasını açın. İçinde, üst düzey nesneye aşağıdaki satırları ekleyin:

“bin”: ( “indirimler”: “./index.js”)

İstemciden gelen girişi ayrıştırmak için komutan paketine de ihtiyacımız olacak. Bu nedenle, geçerli klasörde npm install -save komutunu çalıştırın. Tanımlayıcıları oluşturmak için ayrıca küçük bir kütüphane kullanacağız; npm install -save shortid kullanarak kurabilirsiniz. Hazır bu arada, HTTP çağrılarını kolaylaştırmak için npm install -save request lib komutunu da çalıştıralım. index.js dosyanıza geri dönün ve şu kodu yapıştırın:

#!/usr/bin/env düğümü var program = require('komutan'); var shortid = require('kısa kimlik'); var istek = require('istek'); function CreateDiscount())( var indirim = ( ad: '%20 İNDİRİM', tetikleyici: 'Kod', tür: 'Oran', oran: 20, maxNumberOfUsages: 1, kod: shortid.generate() ) request(( url : “http://app.snipcart.com/api/discounts" , kimlik doğrulama: ( 'user': 'YOUR_API_KEY' ), yöntem: “POST”, json: true, body: indirim), işlev (hata, yanıt, body )( console.log(body.code); )); ) program .arguments(' ') .action(function(number) ( for(var i = parseFloat(number); i > 0; i-)( CreateDiscount ( ); ) )).parse(process.argv);

Burada sadece istek fonksiyonuna odaklanalım. Burada Snipcart'a harici bir API çağrısı yapıyoruz. Yönteme “POST” yöntemini aktardığımızı görebilirsiniz. Bunun nedeni verileri Snipcart API'sine yayınlamak istememizdir. Bu yöntemin belirtilmesiyle API, indirim verilerini içeren istek gövdesini okuyabilecek şekilde eylemi doğru şekilde işleyecektir.

Henüz kullanmadığımız ilginç bir API özelliği kimlik doğrulamadır. Diğer tüm örneklerimiz genel API'lerdeydi: kimlik doğrulama gerektirmiyorlar. Ancak gerçek dünya senaryolarında, kullandığınız API'lerin çoğu, Twitter API'si veya Google Haritalar API'sı gibi muhtemelen bir tür kimlik doğrulama gerektirecektir. Bu, API dünyasında standart bir "kalıptır". Başka birinin mağazalarında indirim yapmasına izin verirsek müşterilerimiz bu kadar mutlu olmaz. ;)

Kimlik doğrulama kavramları oldukça hantal olabilir; Bu harika yazıyı okuyabilirsiniz https://translate.googleusercontent.com/translate_c?length=1&rurl=translate.google.ru&sl=auto&sp=nmt4&tl=ru&u=http://blog.restcase.com/restful-api-authentication- Konuya daha iyi hakim olmak için temel bilgiler /&xid=17259,15700019,15700186,15700190,15700248,15700253&usg=ALkJrhjwWO5yc6nayLpXCQkh_X95B0OZMw.

Amacımız için https://translate.googleusercontent.com/translate_c?length=1&rurl=translate.google.ru&sl=auto&sp=nmt4&tl=ru&u=https://en.wikipedia.org/wiki/Application_programming_interface_key&xid API anahtarını iletiyoruz. =17259, 15700019,15700186,15700190,15700248,15700253&usg=ALkJrhhpSWyk-nV9379VcrY3TMcKiAdXlQ doğrudan istekte, yaşasın sunucu bizi tanıdı! Daha sonra yalnızca hesabımıza özel bir talepte bulunabilir.

Küçük uygulamamızı test etmek istiyorsanız, proje dizininde npm install -g komutunu çalıştırabilir ve indirimler x'i çalıştırarak x sayıda indirim oluşturabilirsiniz. Snipcart kontrol panelinize (test modunda sonsuza kadar ücretsiz hesaplar) gidebilir ve indirimlerin doğru oluşturulduğundan emin olabilirsiniz. Bunun ne kadar güçlü olabileceğini tahmin edebilirsiniz: Bu indirimlerden 200 tanesini oluşturmak zorunda kalsaydınız, bunu kullanıcı arayüzümüz aracılığıyla yapmak çok fazla zaman alırdı. Ancak API'nin nasıl çalıştığını öğrendikten sonra bu işlem birkaç dakika içinde yapılabilir. Kod aynı zamanda yeniden kullanılabilir, yani aynı şeyi bir ay içinde yapmanız gerekiyorsa hazırsınız!

Bahsetmek istediğiniz API için özel kullanım senaryolarınız varsa lütfen bunları yorumlara yazın. Bunları içerik yol haritamıza eklemeye çalışacağız! :)

Son düşünceler

Bu eğitimin API'lerin ne olduğunu ve bunları geliştirme iş akışınızda nasıl kullanabileceğinizi daha iyi anlamanıza yardımcı olduğunu içtenlikle umuyorum.

Birkaç çıkarım:

  • API'ler hızınızı artıracak ve geliştirme yeteneklerinizi genişletecektir. Onları kullan!
  • API'lerin mutlaka web ekosistemine bağlı olması gerekmez; Onları her yerde göreceksiniz.
  • Kullanmak istediğiniz API'nin belgelerini her zaman dikkatlice kontrol edin.
  • Kodlamaya başlamadan önce daima ekosisteminizdeki mevcut araçları (API'ler veya başka türlü) arayın.

Şimdi son örneğimiz "üretime" hazır değil ama gerçek hayatta işlerin nasıl görünebileceği konusunda size iyi bir fikir veriyor. Kullanıcının indirim türünü seçmesine izin vermek gibi geliştirebileceğimiz birçok şey var. Oluşturulan kodları, yalnızca kaydetmek yerine aynı işlevde doğrudan e-postayla göndermek için de kullanabiliriz. İndirim araçlarımıza daha fazla ihtiyacımız olsaydı API'yi kendimiz yazabilirdik. Eğer istersek oradan API'mızla etkileşime giren bir kullanıcı arayüzü bile oluşturabiliriz. Neyse, umarım şimdi fikri anlarsınız! :)

Peki bir sonraki adım nedir? Geliştirme aşamasındaki hemen hemen her şey gibi, kodlamanız, kodlamanız, kodlamanız ve biraz daha kodlamanız gerekiyor! Bu size API yönetimi ve entegrasyonunu tanıtacaktır. Bir süre sonra onlarla daha etkili olacaksınız.

Ve gerçek eğlencenin başladığı yer burasıdır.

Er ya da geç herhangi bir programcı böyle bir kavramla karşı karşıya kalır: API'si. Ancak böyle bir toplantı gerçekleştiğinde herkes bunun ne olduğunu, neden gerekli olduğunu ve nasıl kullanılacağını bilemez. Ve bu yazıda bazılarınızın bilgisindeki bu boşluğu dolduracağım ve ayrıca kendi pratiğimden bir örnek vereceğim.

API'si (uygulama programlama Arayüzü) - Bu uygulama programlama Arayüzü. Daha basit bir ifadeyle bu, diğer programlarda kullanılabilen çeşitli işlevler, sabitler, sınıflar ve sorgu formatlarından oluşan bir dizidir.

Öyle düşünülebilir API'si- bu, uygulamasını bilmediğimiz belirli bir nesnedir, ancak onu kullanabiliriz. Örneğin, bilgisayar, uygulanmasını çok az kişinin bildiği bir nesnedir, ancak neredeyse herkes onu bazı eylemleri gerçekleştirmek için kullanabilir: video izlemek, internette gezinmek, metin yazdırmak vb. Çok az insan her şeyin nasıl çalıştığını biliyor, ancak neredeyse herkes bunu yapabilir.

Örnek API'si dır-dir Windows API'si, OpenGL API'si, Direct3D API'si ve benzeri.

Mesela kısa bir süre önce ben de doğrudan karşılaştım API'si. Posta listesi hizmetine kaydoldum" SmartResponder.ru" ve insanların abone olmaya başladığı bir haber bülteni başlattım. Görev şuydu: Abone olduktan sonraki 24 saat içinde bir kişi ücretli video kursumu indirimli olarak satın alabilir. Abonelerle ilgili tüm bilgiler sunucuda saklandığından " SmartResponder.ru", ardından normal erişim (örneğin, aracılığıyla) Veritabanı) Bu verilere erişimim yoktu ancak uygulanması gerekiyordu. Çok şükür" SmartResponder.ru"kendininkine sahip ol API'si, bunu kullandım.

onlarda buldum API'si Sonuç olarak abonelik tarihini almak için istek biçimi. Daha da ileriye kıvrılmaİlgili isteği gönderdim ve belirli bir abonelik için gerekli abonelik tarihini aldım. e-mail adresleri. Daha sonra standart işleme ve sonucun çıktısı gelir.

Muhtemelen "API" terimini görmüşsünüzdür. İşletim sistemi, web tarayıcısı ve uygulama güncellemeleri sıklıkla geliştiricilere yönelik yeni API'leri duyurur. Peki API nedir?

uygulama programlama Arayüzü

API terimi bir kısaltmadır ve Uygulama Programlama Arayüzü anlamına gelir.

API, bir restorandaki menüye benzer. Menüde sipariş verebileceğiniz yemeklerin bir listesinin yanı sıra her yemeğin açıklaması da bulunur. Hangi menü öğelerini istediğinizi belirlediğinizde, restoranın mutfağı işi yapar ve size bitmiş yemekleri sunar. Restoranın bu yemeği tam olarak nasıl hazırladığını bilmiyorsunuz ve bilmenize de gerek yok.

Benzer şekilde API, geliştiricilerin kullanabileceği birçok işlemin yanı sıra yaptıklarının açıklamasını da sağlar. Geliştiricinin, örneğin işletim sisteminin nasıl oluşturulduğunu ve Farklı Kaydet iletişim kutusunun nasıl görüntülendiğini bilmesine gerek yoktur. Sadece uygulamada kullanıma uygun olduğunu bilmeleri gerekiyor.

Geliştiricilerin sonuç almak için kendi API verilerini sağlamaları gerekebileceğinden bu mükemmel bir metafor değildir, bu nedenle belki de daha çok mutfağın çalışması için kendi malzemelerinizden bazılarını sağlayabileceğiniz şık bir restorana benzeyebilir.

API'ler, geliştiricilerin önemli işleri tamamlamak için platform uygulamasından yararlanarak zamandan tasarruf etmelerine olanak tanır. Bu, geliştirilecek kod miktarının azaltılmasına yardımcı olur ve aynı platformdaki uygulamalar arasında tutarlılık yaratılmasına da yardımcı olur. API'ler donanım ve yazılım kaynaklarına erişimi kontrol edebilir.

API'ler geliştiricilerin hayatını kolaylaştırıyor

Diyelim ki bir iPhone uygulaması geliştirmek istiyorsunuz. Apple'ın iOS işletim sistemi, diğer tüm işletim sistemlerinde olduğu gibi, bunu sizin için kolaylaştırmak amacıyla çok sayıda API sağlar.

Örneğin, bir veya daha fazla web sayfasını görüntülemek için bir web tarayıcısı eklemek istiyorsanız, kendi web tarayıcınızı yalnızca uygulamanız için sıfırdan programlamanıza gerek yoktur. Sen
Uygulamanıza bir WebKit (Safari) web tarayıcısı eklemek için WKWebView API'sini kullanabilirsiniz.

iPhone kamerasından fotoğraf veya video çekmek istiyorsanız kendi kamera arayüzünüzü yazmanıza gerek yok. iPhone kamerasını uygulamanıza eklemek için Kamera API'sini kullanabilirsiniz. API olmasaydı, uygulama geliştiricilerin kendi kamera yazılımlarını oluşturmaları ve kamera donanım girişlerini yorumlamaları gerekecekti. Ancak Apple'ın işletim sistemi geliştiricileri tüm bu zorlu çalışmaları gerçekleştirdi; böylece geliştiriciler kamerayı yerleştirmek için kamera API'sini kullanabilir ve ardından uygulamalarını yazmaya devam edebilirler. Apple, kamera API'sini geliştirdiğinde, onu kullanan tüm uygulamalar otomatik olarak bu iyileştirmeden yararlanacak.

Bu tüm platformlar için geçerlidir. Örneğin, Windows'ta bir iletişim kutusu oluşturmak ister misiniz? Bunun için bir API var. Android'de parmak izi kimlik doğrulamasını desteklemek ister misiniz? Bunun için bir API var, dolayısıyla her Android üreticisinin her parmak izi sensörünü test etmenize gerek yok. Geliştiricilerin tekerleği tekrar tekrar icat etmesine gerek yok.

API'ler kaynaklara erişimi kontrol eder

API'ler ayrıca uygulamanın kullanma iznine sahip olmayabileceği donanım aygıtlarına ve yazılım özelliklerine erişimi denetlemek için de kullanılır. Bu nedenle API'ler genellikle güvenlikte büyük bir rol oynar.

Örneğin, daha önce bir web sitesini ziyaret ettiyseniz ve tarayıcınızda web sitesinin tam konumunuzu sorduğunu belirten bir mesaj gördüyseniz, bu web sitesi, web tarayıcınızdaki coğrafi konum API'sini kullanmaya çalışıyor demektir. Web tarayıcıları, web geliştiricilerinin konumunuza erişmesini kolaylaştırmak için API'ler sağlar; yalnızca "neredesiniz?" diye sorabilirler ve tarayıcı, fiziksel konumunuzu bulmak için GPS'e veya yakındaki Wi-Fi ağlarına erişme gibi zorlu işleri yapar. .

Ancak tarayıcılar bu bilgileri API'ler aracılığıyla da açığa çıkarır çünkü bu bilgilere erişim kontrol edilebilir. Bir web sitesi tam konumunuza erişmek istediğinde, bunu elde etmenin tek yolu konum API'sidir. Ve bir web sitesi onu kullanmaya çalıştığında, siz (kullanıcı) bu isteğe izin verebilir veya reddedebilirsiniz. GPS sensörü gibi donanım kaynaklarına yalnızca bir API aracılığıyla erişilebilir; böylece tarayıcı, donanıma erişimi kontrol edebilir ve uygulamaların yapabileceklerini sınırlayabilir.

Aynı prensip, mobil uygulamaların API'lere erişimi kontrol ederek uygulanabilecek izinlere sahip olduğu iOS ve Android gibi modern mobil işletim sistemleri için de kullanılır. Örneğin, bir geliştirici kameraya kamera API'si aracılığıyla erişmeye çalışırsa izin isteğini reddedebilirsiniz ve uygulama, cihazınızın kamerasına erişemez.

Windows, Mac ve Linux gibi izinleri kullanan dosya sistemleri, dosya sistemi API'si tarafından uygulanan haklara sahiptir. Tipik bir uygulamanın ham fiziksel sabit sürücüye doğrudan erişimi yoktur. Bunun yerine uygulamanın dosyalara API aracılığıyla erişmesi gerekir.

API'ler hizmetler arasındaki iletişim için kullanılır

API'ler başka nedenlerle de kullanılır. Örneğin, bir web sitesinde gömülü bir Google Haritalar nesnesi gördüyseniz, o web sitesi o haritayı yerleştirmek için Google Haritalar API'sını kullanır. Google, web geliştiricileri için bunun gibi API'ler sağlar; geliştiriciler daha sonra karmaşık nesneleri doğrudan web sitelerinde bir araya getirmek için API'leri kullanabilirler. Böyle bir API mevcut değilse, geliştiricilerin bir web sitesinde küçük bir etkileşimli harita barındırmak için kendi haritalarını oluşturmaları ve kendi harita verilerini sağlamaları gerekebilir.

Ve bu bir API olduğu için Google, üçüncü taraf web sitelerindeki Google Haritalar'a erişimi kontrol edebilir ve örneğin Google Haritalar web sitesinin gösterdiği çerçeveyi rastgele uygulamaya çalışmak yerine, üçüncü taraf web sitelerinin tutarlı bir şekilde kullanmalarını sağlayabilir.

Bu, birçok farklı çevrimiçi hizmet için geçerlidir. Google Çeviri'den metin çevirisi istemek veya bir web sitesinde Facebook yorumlarını veya Twitter tweet'lerini görüntülemek için API'ler vardır.

OAuth standardı aynı zamanda bir siteye, yalnızca o site için yeni bir kullanıcı hesabı oluşturmadan yeni bir web sitesinde oturum açmak için Facebook, Google veya Twitter hesaplarınızı kullanmak gibi başka bir hizmet aracılığıyla oturum açmanıza olanak tanıyan bir dizi API'yi de tanımlar. API'ler, geliştiricilerin bir hizmetle nasıl etkileşimde bulunduğunu ve geliştiricilerin almayı beklemesi gereken çıktı türünü tanımlayan standart sözleşmelerdir.

Bu makaleyi okuduysanız API'nin ne olduğunu daha iyi anlayacaksınız. Sonuçta geliştirici olmadığınız sürece API'nin ne olduğunu bilmenize gerek yok. Ancak bir yazılım platformunun veya hizmetinin farklı donanım veya hizmetler için yeni API'ler eklediğini görürseniz geliştiricilerin bu tür özellikleri kullanması daha kolay olacaktır.

API, bir uygulamayı programlamak, bilgi edinmek için belirli bir protokolü kullanarak sitelere erişmek ve dahili hizmetlerle ilişkili programların basitleştirilmiş şekilde geliştirilmesi için kullanılan harici bir arayüzdür.

API'nin anlamı nedir?

API kullanımına ilişkin en basit benzetme, karmaşık hesaplamaları gerçekleştirmek için bir hesap makinesi kullanmak olacaktır. Diyelim ki bir göreviniz var, onun özünü anlayabiliyorsunuz, denklemler ve grafikler oluşturabiliyorsunuz ancak sayılarla aritmetik işlemleri nasıl yapacağınızı bilmiyorsunuz. Yanınızda bu işlemleri kolaylıkla yapabileceğiniz bir hesap makinesi bulunmaktadır. Bilgisayarın içinde neler olup bittiğini bilmiyorsunuz ve bilmenize de gerek yok. Amaçlarınız için gerekli bilgileri bir biçimde verir ve başka bir biçimde alırsınız.

Herhangi bir API bu prensipte çalışır. Programın cevabı nasıl aldığı, isteğin içinde hangi yolu izlediği, hesaplamaların nasıl yapıldığı umurunda değil. Tek bir şeyden eminsiniz - yanıt olarak, operasyonun başarısı veya hatası hakkında standartlaştırılmış bilgiler verilecektir.

API arayüzü, "yeni bir bisiklet" satın almak için zamanınızı, paranızı ve çabanızı boşa harcamamanızı sağlar. Geliştirmenizin amaçları doğrultusunda gerekli miktarda veriyi alıp gönderen, çalışan bir bilgi bağlantı noktasına sahip olursunuz.

Artıları:

  • Kendi arayüzünüzü geliştirmede tasarruf edin.
  • Konunun nüanslarını anlamaya gerek yok.
  • API'ler profesyoneller tarafından geliştirilir ve çözümünüzü oluştururken farkında olmayabileceğiniz iç süreçlerin tüm faktörlerini dikkate alır.
  • Diğer protokoller aracılığıyla kapatılan hizmetlerle iletişim kurmanıza olanak tanır.

Eksileri:

  • Hedef hizmet güncellenirse API her zaman tam işlevselliğe hemen kavuşamaz.
  • Hataları yakalayamazsınız ve başka birinin kodunda sürecin nasıl çalıştığını bilemezsiniz.
  • API, belirli durumları değil genel durumları ele almak üzere tasarlandığından, zaman açısından her zaman en iyi duruma getirilmiş sonucu vermez.

API Örnekleri

API entegrasyonu, bir uygulamayı harici bir veri arayüzüne bağlama işlemidir. API ile çalışmak, kullanılan belgelerin ve protokollerin incelenmesi ve ardından programınızın doğrudan arayüze entegre edilmesiyle başlar. Kendi API'sine sahip en popüler hizmetlere bakalım.

VKAPI

Popüler sosyal ağ VKontakte'nin istemcilerle, ayrıca tarayıcı ve sunucu uygulamalarıyla etkileşimi için harici arayüz. Uygun erişim anahtarlarına sahipseniz topluluk mesajlarını, grup kapaklarını ve kullanıcı sayfalarını yönetmenize olanak tanır.

Tüm talepler adrese yapılır https://api.vk.com/method/

Eğik çizgiden sonra kullanılan API yönteminin adı gelir ve isteğin GET parametreleri iletilir. Yanıt ayrıca JSON formatında HTTPS aracılığıyla gelir.

TELEGRAM BOT API'si

En popüler API'lerden biri. Telegram messenger'daki botları kontrol etmek için kullanılır. @botfather aracılığıyla bir bot oluşturup gerekli erişim anahtarlarını aldıktan sonra arka uçla etkileşime geçmeye başlayabilirsiniz.

Talepler şu adrese yapılabilir: https://api.telegram.org/bot0000000:token/

Burada bot0000000, botunuzun benzersiz tanımlayıcısıyla değiştirilir ve token, gizli anahtarı ifade eder.

İstekler HTTPS bağlantıları aracılığıyla gönderilir; yöntem adı, ana adreste eğik çizgiyle gösterilir. Yanıt JSON biçiminde gelir.

AÇIK HAVA HARİTASI API'si

Çoğu zaman üçüncü taraf widget'ları ve ücretli uygulamaları kullanmadan hava durumu bilgilerini almak gerekir. OpenWeatherMap hizmeti açık ve ücretsiz bir API ile imdada yetişiyor. Kimlik verilerini kaydettikten ve aldıktan sonra, dünyanın her yerindeki sunucu komut dosyalarından hava durumu isteklerini gönderebilirsiniz. Şehir kimliğine yanıt olarak kaynak, mevcut hava durumu hakkında en ayrıntılı bilgileri verir ve yakın geleceğe yönelik bir tahmin verir.

Format: api.openweathermap.org/data/2.5/weather?id= üzerinden istenen şehrin kimlik numarasını belirten HTTP iletimi. Sunucu yanıtı: JSON.

GOOGLE HARİTALAR API'si

Bir web sitesindeki etkileşimli bir dünya haritasından daha güzel ne olabilir? Özellikle bu, Google Haritalar'dan bir şablon eklentisi değil, kişisel işaretçi kümelerine sahip popüler bir haritanın kişisel sürümünüzse. Harita, tıklamalar ve koordinatlar hakkında bilgi göndererek sitedeki diğer komut dosyalarıyla etkileşime girecek.

Google Haritalar JavaScript API'si de benzer yetenekler sunar. Modül tamamen komut dosyasıyla yazılmıştır ve tarayıcı tarafında çalışır, bu nedenle diğer API'lerde olduğu gibi PHP'den HTTP isteklerine ve sunucu tarafında başlıkların oluşturulmasına ihtiyacımız yoktur.

Örneğin, haritaya bir işaretleyici yerleştirmek şöyle görünecektir:

var mark = yeni google.maps.Marker((
konum: POS'um,
harita: harita,
başlık: "Merhaba!"
});

API kullanmanın ihtiyacı ve faydaları nelerdir?

Oldukça fazla yararlı fonksiyon var.

İlk yön

Sosyal ağlar ve anlık mesajlaşma programları ile etkileşimli kullanıcı etkileşimi kurabilir, döviz kurlarını, hava durumunu ve diğer önemli bilgileri görüntülemek için üçüncü taraf bilgi işlem sistemlerinin yeteneklerini kullanabilirsiniz.

API'yi kullanarak, diğer kaynakları ve yazılım çözümlerini anında sunuculara bağlayabilirsiniz; bu, normalde haftalarca geliştirilmesi gereken bir işlemdir. API, benzersiz bir uygulamaya ihtiyaç duyulmayan ve güvenilirlik ve güvenliğin öncelikli olduğu durumlarda hayatı kolaylaştırır.

İkinci yön

Karmaşık bilgi işlem gücüne, popüler bir hizmete veya genel veya yarı özel erişime yönelik veri depolama alanına sahipseniz, kendi API'nizi yükseltmek iyi bir hamle olacaktır. Ne verecek:

  • Büyük müşteri akışı.
  • İş ortakları için hizmetlerinize basitleştirilmiş erişim.
  • Hizmet kullanımının istatistiksel analizinin kolaylığı.

Üçüncü yön

İkinciyle hemen hemen aynı. Ancak bir açık erişim API'si uygulamaya gerek kalmadan. Bir portalınız varsa ve bunun için Android/IOS üzerinde mobil uygulama oluşturmak istiyorsanız sistemi tek bir API altında yeniden yazmak en iyi çözümdür. Tüm veri yapısı sistematik hale getirilmiştir. Site ve uygulama tek veri kanalları üzerinden çalışacaktır.