API'lerle çalışma konusunda acısız bir giriş

Tipik API çağrısı

Web geliştirme endüstrisinin yakınında bir yerde çalışıyorsanız, bu üç rezil mektubu duyduğunuzdan emin olursunuz: A.P.

Hem yeni başlayanlar hem de uzmanlar tarafından atılıyorlar:

“Neden bir API araması yapmak zorundayım? Bir numarası var mı?

“Bu üçüncü taraf API'ye yapılan basit bir çağrı burada hile yapacak.”

“Size RESTful bir API oluşturacağız; yeni sisteminizin diğer servislerle iyi bir şekilde oynadığından emin olmak. ”

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

Niye ya? Peki, API'leri doğru kullanmayı öğrenmek, geliştirme iş akışınızı basitleştirebilir, hızlandırabilir ve güçlendirebilir. API oluşturmak veya entegre etmek hem müşteriler hem de kendiniz için faydalar sağlar.

Geliştiriciler olarak, genellikle şu önerileri duyarsınız: “tekerleği yeniden icat etmeyin”.

Şaka bir yana, tekerleği yeniden icat etmemenizde API'ler önemli bir rol oynar. API'lerin temellerini anlamak, modern web geliştiricileri için çok önemlidir. Bu yayında, tam olarak bunu yapmanıza yardımcı olacağım. Kapatacağız:

  • API kullanmanın yararları
  • Gerçekten bir API nedir
  • Ne tür API'ler var?
  • Pratik kullanım durumları

Hadi dalalım mı?

Neden API kullanıyorsunuz?

API'larla yeteneklerinizi geliştirin

Programlama kariyerimdeki ilk büyük dönüm noktalarından biri API'leri doğru anlamaktı. Her gün onları hala kullanıyorum.

Nitty-gritty'ye adım atmadan önce, sizi API'leri anlamanın zaman ayırmaya değer olduğuna ikna edeyim. Nasıl yani?

Çünkü API'leri kullanmayı öğrenmek gelişim etkinliğinizi önemli ölçüde artırır.

Birincisi, yazmak zorunda olmadığınız önceden var olan mantığınızdan yararlanmanıza olanak tanır. Bazı şeyleri kendin kodlayamayabilirsin! Bir geliştirici olarak değerli zamandan tasarruf etmek için, API manzarasının nasıl göründüğü hakkında bir fikir sahibi olmak önemlidir.

İkincisi, karşılaşacağınız birçok geliştirme sorunu sizden önce birileri tarafından çözüldü.

Bu mevcut çözümler FaaS, kütüphaneler, web servisleri, SDK'lar, içerik API'leri olabilir. Hangi şekli alırlarsa alınsın, büyük olasılıkla onlarla etkileşime geçmek için bir API’ye ihtiyacınız olacaktır.

Tam olarak API nedir?

Web API'leri, MS’den görüntü

Resmi (yıldırıcı) tanım şöyle:

Bilgisayar programlamasında, bir uygulama programlama arayüzü (API), bir uygulama yazılımı oluşturmak için alt rutin tanımlamalar, protokoller ve araçlar kümesidir. Genel olarak, çeşitli yazılım bileşenleri arasında açıkça tanımlanmış bir iletişim yöntemleri kümesidir. İyi bir API, daha sonra programcı tarafından bir araya getirilen tüm yapı taşlarını sağlayarak bir bilgisayar programı geliştirmeyi kolaylaştırır.

Biraz ağır, ha? Akademik nesneyi bir adım aşağı indirelim. İşte dostça hazırlanmış, ev yapımı API tanımı:

Basitçe söylemek gerekirse, bir API, başlık altında ne olacağını bilmenize gerek kalmadan mantığı ile etkileşime girmeniz için bir arayüz belirler. Bu tanım, içinde bulunduğunuz dil, protokol veya ortam için geçerlidir. Tek şart, program düzeyinde gerçekleşmesidir. Aşağıdaki konuda daha fazlası.

API'lara daha da iyi bir ışık tutabilmek için, NELER OLMAYI olduklarını listeleyelim:

  • Bir API mutlaka harici bir servis değildir. Örneğin, kütüphaneleri doğrudan çözümünüze dahil edebilir VEYA bir API üzerinden kullanabilirsiniz.
  • Bir API sadece bir arayüz değildir. Hem şartname / biçim hem de uygulama.
  • Bir API bir GUI değil (grafiksel kullanıcı arayüzü). Bir API, grafik düzeyinde etkileşimler yapmaz. Yalnızca programatik katman üzerinde çalışır. Bu, bir programlama dili veya bir iletişim protokolü aracılığıyla olabilir.

Farklı API türleri

Tüm API'ler eşit yaratılmaz.

Çoğunlukla aynı hedefi paylaşsalar da bazıları bunu diğerlerinden daha iyi bir şekilde başarırlar. Bunun düzgün bir giriş olması gerektiğinden, bir API'yi diğerlerinden daha iyi yapan şeylere dalmayacağım.

İnsanların API oluşturma konusunda gerçekten farklı yaklaşımları olduğunu unutmayın. Bu konu sizi ilgilendiriyorsa, Google'ı “API tasarım kalıpları” ve “API paradigmaları” etrafında. Veya yalnızca bu düzenli giriş seviyesi makale ile başlayın. :)

Endpoints

API'lerin amacı bir geliştirici olarak hayatınızı kolaylaştırmaktır. Bunu nasıl yapıyorlar?

Bir araya getirilen özellikleri / işlevleri bir araya getirerek ve bu işlevleri son noktalar aracılığıyla göstererek. Bunlar genellikle API ile iletişim kurmak için kullanılan URL kalıplarıdır.

Bu uç noktalar, herhangi bir API ile etkileşime geçmenin tek yoludur. Her uç nokta, istekleri ve yanıtları için belirli bir biçime sahip olacaktır. Genellikle bu belgeyi API’nin belgelerinde tanımlanmış olarak bulabilirsiniz.

Bitiş noktaları basit fonksiyonlar olabilir. Veya, diğer API'leri çağırabilen birçok fonksiyondan oluşabilirler.

Buradaki en önemli nokta, bu fonksiyonların altında yatan mantığın tamamen soyutlanmış olmasıdır. Bunları kullanmak için içlerinde neler olup bittiğine dair hiçbir bilgiye ihtiyacınız yok.

Doğru formatı kullandığınız sürece, bunları tüketebileceksiniz. Burada “tüketmek”, “uygulamalarınız için bölümlerini kullanmak” demenin süslü bir yoludur.

Alt satırda bu: bir API sadece herhangi bir arabirim gibidir.

Bir karşılaştırma olarak, elektrik akımlarının nasıl çalıştığını bilseniz de bilmeseniz de, bir ışık anahtarı ışığı açacaktır. (Genç bir yetişkin olarak, çalışmasını sağlamak için elektrik faturasını ödemeniz gerektiğini öğrendim… ama bu farklı bir hikaye…)

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

Şimdi bazı kolay uygulamalar için teoriyi değiştirelim.

API belgelerini okuma

Kavramsal açıklamaları fazla uzatmak istemiyorum. Bunun yerine, gerçekten basit bir API'yi analiz edelim. Gerçek hayat senaryosunda nasıl çalıştığını göreceğiz. Bunu yapmak için yerel JavaScript Math nesnesini kullanacağız. Belgelerini buradan okuyabilirsiniz.

Dokümanlar, Math nesnesinin her bir fonksiyonunun giriş formatının ne olması gerektiğini nasıl açıkladığını açıklar. Örneğin, bir sayı veya sayı dizisi olabilir.

Dokümanlar ayrıca çıktının formatını da tanımlar.

Bu fonksiyonları çalıştırmak için kullanılan mantık hakkında hiçbir şeyden bahsedilmediğine dikkat edin.

Örneğin, tarayıcı konsolunuzu açıp Math.sqrt (işlevi çalıştırmadan) yazarsanız, şöyle bir şey görürsünüz:

ƒ sqrt () {[yerel kod]}

Bu bir API'nin ruhu. İşletim Sisteminizin API'lerinden birini veya web tabanlı bir API'yi aradığınızda, bu ilkeler geçerli kalacaktır.

Temel API kullanım örnekleri

Orada popüler API sağlayıcılarıyla yapılabilecek bir sürü şey var.

Google Haritalar API’sı, gerçek zamanlı haritalama ve trafik sinyallerine dayanan verilerle daha iyi kullanıcı deneyimleri oluşturmak için kullanılır. Twitter API'si, hedeflenen Tweet'leri gerçek zamanlı olarak filtrelemek ve görüntülemek için kullanılabilir.

Şimdi, çoğunuzun web tabanlı API'lerle her şeyden çok ilgilendiğinizden şüpheleniyorum. Öyleyse belirli kullanım durumlarına dalalım.

Örneklerimizde Postacı kullanacağız. Bu Rest Client bir web ortamına bağlıdır, ancak bu araçlar genellikle başka ortamlarda da bulunur. Onlarla oynamaya başlamadan önce belirli bir ortam için sağlanan araçların etrafına bir göz atmaya değer. Bu size çok zaman kazandırabilir.

Devam etmek istiyorsanız, Postacı istemcisini indirmeniz gerekir.

Veri almak için herkese açık bir API tüketmek

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

Dog API'sini kullanacağız!

Yalnızca komik bir API değil, aynı zamanda herhangi bir kimlik doğrulama gerektirmez.

Ayrıca, bir HTTP REST API’sidir. Bu, web tabanlı bir API olduğu anlamına gelir. Bu ortama bağlı olduğu için, bazı protokol özelliklerine uymamızı gerektirir.

Bu durumda, bu GET, PUT, POST, DELETE gibi HTTP Fiilleri kullanmak anlamına gelir.

Örneğimize göre, her şeyi basit tutacağız ve yalnızca GET fiilini kullanacağız. API zaten başka bir şeyi desteklemiyor. Çoğu genel API, yalnızca veri tüketmenize izin verir ve hiçbirini yayınlamaz.

Postman'ı ateşleyelim ve kullanıcı arayüzünün nasıl göründüğünü görelim.

Kullanıcı Arayüzüm karanlık temayı kullanıyor, bu yüzden sizinkinden biraz farklı olabilir.

Burada ilk başta sindirilecek çok fazla bilgi olabilir, bu yüzden VERB ve URL ile başlayalım.

Varsayılan fiil GET olmalıdır. Öyleyse, bu şekilde tutabilir ve aşağıdaki URL'yi girebilirsiniz: https://dog.ceo/api/breeds/list/all

“Gönder” e basın ve patlama! Uygun verilerle bir cevap almalısınız. Voila İlk API çağrınızı yaptınız.

Şimdi, bu örnek için, alınan verilerin hiçbirini kullanmayacağız. Ama fikri anladın. Kullanıcınıza farklı köpek ırkları gösterebilir ve eğer üzerine tıklarlarsa belirli bir cinsin görüntüsünü gösterebilirsiniz.

Çevreyi tanımak için belgelerinde farklı rotalarla oynayabilirsiniz.

Güzel gerçek: bu küçük proje aynı zamanda açık kaynak, yani kaputun altına bir göz atabilirsiniz.

Özel bir API ile kimlik doğrulaması yapma

Umarım, artık API'lere gelince farklı parçaların birlikte nasıl çalıştığını daha iyi anlarsınız. Kimlik doğrulama içeren daha karmaşık bir öğretici yapalım. Burada “kendi” uygulamalarımdan birinin API'sini kullanacağım.

Burada sadece Snipcart’ın API’sıyla etkileşim kurmak için kod kullanacağız. Postacı'yı kapatabilirsin ama el altında tut. Bir API ile başlarken böyle bir aracı kullanmak iyidir.

Amaç, alışveriş yapanlar için 1 kez kullanım indirimi yaratan basit bir komut satırı arayüzü (CLI) aracı oluşturmak olacaktır. Bu indirimler bir API üzerinden gerçekleştirilecektir. Bütün bunlar tamamen bilgisayarınızda olacak.

Bu proje için yeni bir klasör oluşturun. Klasörde npm init kullanın ve metin editörünüzü açın.

Şimdi bir index.js dosyası oluşturun, ardından package.jsonfile dosyasını açın. İçine, aşağıdaki satırları üst düzey nesneye ekleyin:

"bin": {"indirim": "./index.js"}

Ayrıca müşteriden gelen girdileri ayrıştırmak için komutan paketine ihtiyacımız olacak. Geçerli klasörde npm install - save komutunu çalıştırın.

Ayrıca kimlik oluşturmak için küçük bir lib kullanacağız. Npm install - save shortid ile yükleyebilirsiniz.

Biz buna devam ederken npm install - save request lib. Bu, HTTP çağrıları yapmamızı kolaylaştıracaktır. İndex.js dosyanıza geri dönün ve şu kodu yapıştırın:

Burada sadece istek işlevine odaklanalım.

Harici API'yi Snipcart'a çağırdığımız yer burasıdır. "POST" yöntemini yönteme ilettiğimizi görebilirsiniz. Bunun nedeni Snipcart’ın API’sine POST verisi yapmak istiyoruz. Bu yöntemi belirterek, API eylemi doğru şekilde eşler. Bu, indirim verilerinin yer aldığı isteğin gövdesini okumasını sağlar.

Henüz kullanmadığımız heyecan verici bir API özelliği kimlik doğrulamasıdır.

Diğer örneklerimizin tümü herkese açık API'lerdeydi. Bunlar kimlik doğrulama gerektirmez.

Ancak gerçek hayatta, kullanacağınız çoğu API muhtemelen bir miktar kimlik doğrulaması gerektirecektir. API dünyasında standart bir "kalıp" dır. Müşterilerimize, dükkanlarında indirim yapma imkânı verirsek, müşterilerimiz mutlu olmaz! ;)

Amacımız, API anahtarını doğrudan istek üzerine iletiriz.

Yaşasın - sunucu bizi tanıyor! Daha sonra sadece hesabımıza gönderilen talebi yerine getirebilir.

Küçük uygulamamızı test etmek istiyorsanız, proje dizininde npm install -g komutunu çalıştırabilirsiniz. Ardından, indirimler x defalarca x oluşturmak için yalnızca indirimleri çalıştırın.

Snipcart panonuza gidebilir (Test modunda sonsuza kadar ücretsiz hesaplar) ve indirimlerin doğru bir şekilde oluşturulduğunu kendiniz görebilirsiniz.

Bunun ne kadar güçlü olabileceğini hayal edebilirsiniz. Bu indirimlerden 200'ünü oluşturmak zorunda olsaydınız, bunun kullanıcı arayüzümüz aracılığıyla yapması çok fazla zaman gerektirecektir.

API’lerin nasıl çalıştığını bildiğiniz zaman, birkaç dakika içinde bu yapılabilir. Kod da tekrar kullanılabilir, yani bundan bir ay sonra aynı şeyi yapmanız gerekiyorsa, zaten ayarladınız!

Kapanış düşünceleri

Gerçekten bu astarın, API'lerin ne olduğunu ve geliştirme iş akışınızda bunları nasıl kullanabileceğinizi daha iyi anlamanıza yardımcı olacağını umuyorum.

Birkaç paket servis:

  • API'ler hızınızı hızlandıracak ve geliştirme kapsamınızı genişletecektir. Onları kullan!
  • API'ler mutlaka web ekosistemine bağlı DEĞİLDİR. Onları her yerde göreceksin.
  • Kullanmak istediğiniz API'nin belgelerini her zaman iki kez kontrol edin.
  • Kodlamaya başlamadan önce daima ekosisteminizde mevcut araçları (API'ler veya başka şekilde) arayın.

Son örneğimiz gerçekten “üretim” hazır değil. Fakat size gerçek yaşamda kullanımda olayların nasıl görünebileceği hakkında iyi bir fikir verir.

Geliştirebileceğimiz çok şey var. Örneğin:

  • Kullanıcının indirim türünü seçmesine izin verme
  • Oluşturulan kodları, yalnızca günlüğe kaydetmek yerine doğrudan aynı işleve e-postayla gönderebiliriz.
  • İndirim araçlarımız için ileri düzeyde ihtiyaçlarımız olsaydı, kendimize bir API yazabilirdik. Buradan, istersek API'mızla etkileşime giren bir UI bile oluşturabiliriz. Neyse, umarım şimdi anlarsın. :)

Peki bir sonraki adım nedir? Geliştirme alanındaki neredeyse her şey gibi, biraz daha kodlamanız, kodlamanız, kodlamanız ve kodlamanız gerekecek! API yönetimi ve entegrasyonunu bu şekilde tanıyacaksınız.

Bir süre sonra, onlarla verimli olacaksın.

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

Bu yayının keyfini çıkardıysanız, lütfen Twitter'da alkışlamak ve paylaşmak için bir saniye ayırın. Yorumlarınız, sorularınız mı var? Aşağıdaki bölüme tıklayın!

Bunu Snipcart Blog’da yayımladım ve bültenimizde paylaştım.