arrow_back

Google'da API'lere Giriş

Join Sign in

Google'da API'lere Giriş

1 hour 1 Credit

GSP294

Google Cloud Rehbersiz Laboratuvarları

Genel Bakış

API'ler (Uygulama Programlama Arayüzü), geliştiricilerin bilgi işlem kaynaklarına ve verilere erişmesini sağlayan yazılım programlarıdır. Pek çok farklı sektördeki şirket, geliştiricilerin özel araçları, hizmetleri veya kitaplıkları kendi uygulamaları ve kod tabanıyla entegre edebilmesi için herkese açık API'ler sunar.

Bu laboratuvarda, API'lerin mimarisi ve temel işlevleri hakkında bilgi edineceksiniz. Cloud Shell'de Cloud Storage API yöntemleri yapılandırıp çalıştırarak, öğrendiklerinizi uygulamalı olarak pekiştireceksiniz. Bu laboratuvarı tamamladıktan sonra API iletişimi, mimarisi ve kimlik doğrulamasının temel ilkelerini anlamış olacaksınız. Gelecek laboratuvarlarda veya projelerde kullanabileceğiniz uygulamalı API deneyimi de kazanacaksınız.

Hedefler

Bu laboratuvarda şunları öğreneceksiniz:

  • Google API'leri
  • API mimarisi
  • HTTP protokolü ve yöntemleri
  • Uç noktalar
  • REST (Representational State Transfer - Temsili Durum Aktarımı) ve RESTful API'ler
  • JSON (JavaScript Object Notation - JavaScript Nesne Gösterimi)
  • API kimlik doğrulama hizmetleri

Ön koşullar

Bu laboratuvar giriş seviyesine uygundur. Yani API bilginizin veya Google API'lerini kullanma deneyiminizin çok az olduğu ya da hiç olmadığı varsayılır. Kabuk ortamlarına ve komut satırı arayüzü araçlarına aşina olmanız önerilir ancak zorunlu değildir. Google Cloud Console ve Cloud Storage'a aşina olmanız önerilir, bu nedenle bu laboratuvara başlamadan önce lütfen en azından aşağıdaki laboratuvarları tamamlayın.

Hazır olduğunuzda aşağı kaydırın ve laboratuvar ortamınızı kurma adımlarını uygulayın.

Kurulum ve Şartlar

Laboratuvarı Başlat düğmesini tıklamadan önce

Buradaki talimatları okuyun. Laboratuvarlar süreli olduğundan duraklatılamaz. Laboratuvarı Başlat'ı tıklattığınızda başlayan zamanlayıcı, Google Cloud kaynaklarının ne süreyle kullanımınıza açık durumda kalacağını gösterir.

Bu Qwiklabs uygulamalı laboratuvarı, laboratuvar etkinliklerini gerçek bir bulut ortamında (simülasyon veya demo ortamında değil) kendi kendinize yapmanıza olanak tanır. Bu olanağın sunulabilmesi için size yeni, geçici kimlik bilgileri verilir. Bu kimlik bilgilerini laboratuvar süresince Google Cloud'da oturum açmak ve Google Cloud'a erişim için kullanırsınız.

Gerekenler

Bu laboratuvarı tamamlamak için şunlar gerekir:

  • Standart bir internet tarayıcısına erişim (Chrome tarayıcı önerilir).
  • Laboratuvarı tamamlamak için zaman.

Not: Kendi Google Cloud hesabınız veya projeniz zaten varsa bu laboratuvarda hesabınızı ya da projenizi kullanmayın.

Not: Pixelbook kullanıyorsanız bu laboratuvarı çalıştırmak için gizli pencere açın.

Laboratuvarınızı başlatma ve Google Cloud Console'da oturum açma

  1. Laboratuvarı Başlat düğmesini tıklayın. Laboratuvar için ödeme yapmanız gerekiyorsa ödeme yöntemini seçebileceğiniz bir pop-up açılır. Soldaki Laboratuvar Ayrıntıları panelinde şunlar yer alır:

    • Google Console'u Aç düğmesi
    • Kalan süre
    • Bu laboratuvarda kullanmanız gereken geçici kimlik bilgileri
    • Bu laboratuvarda ilerlemek için gerekebilecek diğer bilgiler
  2. Google Console'u Aç'ı tıklayın. Laboratuvar, kaynakları çalıştırır ve sonra Oturum aç sayfasını gösteren başka bir sekme açar.

    İpucu: Sekmeleri ayrı pencerelerde, yan yana açın.

    Not: Hesap seçin iletişim kutusunu görürseniz Başka Bir Hesap Kullan'ı tıklayın.
  3. Gerekirse Laboratuvar Ayrıntıları panelinden Kullanıcı adı'nı kopyalayın ve Oturum aç iletişim kutusuna yapıştırın. Sonraki'ni tıklayın.

  4. Laboratuvar Ayrıntıları panelinden Şifre'yi kopyalayın ve Hoş geldiniz iletişim penceresine yapıştırın. Sonraki'ni tıklayın.

    Önemli: Sol paneldeki kimlik bilgilerini kullanmanız gerekir. Google Cloud Öğrenim Merkezi kimlik bilgilerinizi kullanmayın. Not: Bu laboratuvarda kendi Google Cloud hesabınızı kullanabilmek için ek ücret ödemeniz gerekebilir.
  5. Sonraki sayfalarda ilgili düğmeleri tıklayarak ilerleyin:

    • Şartları ve koşulları kabul edin.
    • Geçici bir hesap kullandığınızdan kurtarma seçenekleri veya iki faktörlü kimlik doğrulama eklemeyin.
    • Ücretsiz denemelere kaydolmayın.

Birkaç saniye sonra Cloud Console bu sekmede açılır.

Not: Soldaki Gezinme menüsü'nü tıklayarak Google Cloud ürün ve hizmetlerinin listelendiği menüyü görüntüleyebilirsiniz. Gezinme menüsü simgesi

API'ler: Nedir, Neden Kullanılır?

Yukarıda açıklandığı gibi API'ler (Uygulama Programlama Arayüzü), geliştiricilerin bilgi işlem kaynaklarına ve verilere erişmesini sağlayan yazılım programlarıdır. İstekleri ve yanıtları net bir şekilde iletmek için belirli kurallara ve yöntemlere bağlı olarak çalışırlar.

Verilere ve bilgi işlem kaynaklarına erişme olanağı, bir geliştiricinin verimliliğini çok büyük oranda artırır. Her bir programı, yöntemi veya veri kümesini sıfırdan derlemektense API kullanmak çok daha kolaydır. API'ler özetleme ilkesi temelinde derlenir, yani bir API'yi kendi ortamınızda kullanmak için onun iç işleyişini veya tüm karmaşık ayrıntılarını anlamanıza gerek yoktur.

API'ler geliştiricilere yönelik olarak derlendiğinden çoğu zaman grafik kullanıcı arayüzü (GUI) sunmaz. Ancak bu standardın istisnaları vardır. Google, çeşitli Google API'lerini etkileşimli bir şekilde keşfetmenize olanak tanıyan API Gezgini adlı bir araç sunmuştur (daha fazla bilgi edinmek istiyorsanız bu konudan sonra API Gezgini: Qwik Start laboratuvarına bakmayı unutmayın.)

Cloud APIs

Google, pek çok farklı alana ve sektöre uygulanabilecek API'ler sunar. API'ler çoğu zaman web geliştirme, makine öğrenimi, veri bilimi ve sistem yönetimi iş akışlarında kullanılır. Ancak bunlar, API'lerin kullanım alanlarından yalnızca birkaç tanesidir. Örneğin AnyAPI'yi incelerseniz kullanabileceğiniz ne kadar çok API olduğunu görmeye başlarsınız.

Qwiklabs bir laboratuvar örneği için yeni bir Google Cloud Projesi sağladığında, hemen laboratuvarın görevleri üzerinde çalışmaya başlayabilmeniz için projede çoğu API arka planda etkinleştirilir. Qwiklabs dışında kendi projelerinizi oluşturursanız bazı API'leri kendiniz etkinleştirmeniz gerekir.

Google Cloud kullanıcısı olarak yetkinlik kazandıkça iş akışınızda daha çok API kullanmaya başlayacaksınız. Deneyimli kullanıcılar yerel ortamlarında neredeyse her zaman Cloud APIs entegre eder, araçları ve hizmetleri çalıştırmak için nadiren Cloud Console kullanır. Farklı dillerdeki çeşitli Google API'lerini uygulamalı olarak deneyimlemeniz için çok sayıda laboratuvar hazırladık. Bunlardan ikisi:

Şimdi hangi Google API'lerinin kullanılabileceğini görmek için API kitaplığı'nı inceleyelim.

API Kitaplığı

Gezinme menüsü'nü açın ve API'ler ve Hizmetler > Kitaplık'ı seçin:

aaa6309ec4a35ccd.png

API kitaplığı 200'den fazla Google API'si için hızlı erişim, doküman ve yapılandırma seçeneği sunar. Console üzerinde barındırılsa da kitaplığın yalnızca Google Cloud merkezli olanlara değil, tüm Google API'lerine erişim sunduğunu unutmamakta fayda vardır. Bu, önemli bir durumu vurgular: API'ler tüm Google hizmetlerinde esastır ve Cloud APIs altında yer alanların tümü Google Cloud kategorisine girmez.

Şimdi API kitaplığında API etkinleştirmeyi uygulamalı olarak görelim. Bir fitness sitesinin mobil uygulama geliştiricisi olduğunuzu ve uygulamanızı derlemek için Google Fitness API'yi kullanmak istediğinizi düşünün.

"API ve Hizmet Arayın" arama çubuğuna Fitness API yazın ve Enter tuşuna basın. Sonuç listesinde Fitness API'yi tıklayın. Ardından, Etkinleştir'i tıklayın. API kitaplığındayken tarayıcı pencerenizde geri düğmesini iki kez tıklayarak Fitness API'ye dönerseniz API'nin etkinleştiğini göreceksiniz:

fitness-api.png

API kitaplığı, API Gezgini'ndeki eğitici ve dokümanlar, hizmet şartları ve etkileşimli yöntemler için bağlantılar sağlar. Metrik ve kullanım bilgilerini görmek için API Kontrol Paneli'ni kullanırsınız.

API Kontrol Paneli

Cloud Console'un API Kontrol Paneli'nde Fitness API'yi inceleyin. Gezinme menüsünü açın ve API'ler ve Hizmetler > Kontrol Paneli'ni seçin:

api-dashboard.gif

API Kontrol Paneli, projenizin belirli API'lere ilişkin trafik seviyeleri, hata oranları ve hatta gecikmeler gibi kullanım ayrıntılarını göstererek Google hizmetlerini kullanan uygulamalardaki sorunları hızla değerlendirmenize yardımcı olur.

API listesinden Fitness API'yi seçin:

fit-api.png

İlk sayfada bulamıyorsanız, ikinci sayfada Fitness API araması yapmanız gerekebilir.

Bu sayfada kotaları görüntüleyebilir ve kota isteyebilir, kaynak ve verilere erişimi kontrol edebilir ve metrikleri görüntüleyebilirsiniz. Bu özelliklerin nasıl çalıştığını görmek için sol taraftaki menüden Kotalar'ı seçin.

İstek seçeneğini genişletin. Bu size bu API'nin günlük olarak, kullanıcı başına ve saniye başına kaç adet sorguya izin verdiğini gösterir:

api-quota.png

Cloud API olmayan bir API sağlama deneyimi edindiğinize göre, uygulamalı eğitimin devamında Google Cloud Storage API'yi ele alacaksınız. Şimdi API'lerin mimarisi ve temel işlevleri hakkında bilgi edineceksiniz.

Öğrendiklerinizi test etme

Şimdiye kadar ele alınan kavramları pekiştirmek için aşağıdaki çoktan seçmeli soruları yanıtlayın.

API Mimarisi

API'ler, programların birbiriyle iletişim kurmasını sağlayan bir dizi yöntemdir. Etkin bir şekilde iletişim kurmak için programların, veri aktarımını ve yorumlanmasını yöneten net bir protokole bağlı kalması gerekir.

İstemci-sunucu modeli

İnternet, API'lerin programlar arasında istek ve yanıt iletmek için kullandığı standart iletişim kanalıdır. İstemci-sunucu modeli, web tabanlı API'lerin bilgi alışverişi için kullandığı temel mimaridir.

İstemci, bilgi işlem kaynakları veya veriler için istek yapan bir bilgi işlem cihazıdır (akıllı telefon, dizüstü bilgisayar vb. gibi). İstemcinin isteği, üzerinde anlaşılan protokole uygun olarak biçimlendirilmiş olmalıdır.

Sunucu, verilerin ve/veya bilgi işlem kaynaklarının depolandığı yerdir. Sunucunun işi, istemcinin isteğini yorumlamak ve yerine getirmektir.

Aşağıda istemci-sunucu modelinin görsel temsili verilmiştir:

5fe668c7107b4d28.png

HTTP protokolü ve istek yöntemleri

İletişim kanalı olarak web'i kullandığından çoğu API, istemciler ve sunucular arasında internet üzerinden yapılan veri alışverişi için kurallar ve yöntemler belirten HTTP protokolüne bağlıdır. HTTP protokolü yalnızca API'ler tarafından kullanılmaz, internet üzerinden veri gönderilen ve alınan web iletişimi standardıdır.

HTTP protokolünden yararlanan API'ler, istemci isteklerini sunuculara iletmek için HTTP istek yöntemlerini ("HTTP fiilleri" olarak da bilinir) kullanır. En yaygın olarak kullanılan HTTP yöntemleri GET, POST, PUT ve DELETE'tir.

GET istek yöntemi, istemci tarafından sunucudan veri getirmek için kullanılır. İstenen kaynak sunucuda bulunursa istemciye geri gönderilir.

PUT yöntemi, mevcut verileri değiştirir veya veri yoksa veri oluşturur. PUT yöntemini birden çok kez kullanmak herhangi bir etki göstermez, sunucuda yalnızca bir veri kümesi kopyası olur.

POST yöntemi en çok yeni kaynak oluşturmak için kullanılır. POST yöntemi birden çok kez kullanıldığında, sunucuda birden fazla yere veri eklenir. Kaynakları güncellemek için PUT, yeni kaynak oluşturmak için POST yönteminin kullanılması önerilir.

DELETE yöntemi, sunucuda istemci tarafından belirtilen verileri veya kaynakları kaldırır.

Kendi benzersiz amaçları ve uzmanlıkları olan yüzlerce API olsa da aslında hepsinin istemci-sunucu iletişimi için aynı protokolü ve temel yöntemleri kullandığını unutmamak gerekir.

Öğrendiklerinizi test etme

Şimdiye kadar ele alınan kavramları pekiştirmek için aşağıdaki çoktan seçmeli soruları yanıtlayın.

Uç noktalar

API'ler sunucuda barındırılan verilerle veya bilgi işlem hizmetleriyle etkileşime geçmek için HTTP yöntemlerini kullanır. Belirli kaynaklara tutarlı olarak erişme yolu yoksa bu yöntemler işe yaramaz. API'ler, istemcilerin kaynaklara karmaşıklık veya düzensizlik olmadan erişebilmesi için uç nokta adı verilen iletişim kanallarını kullanır.

Uç noktalar, sunucularda barındırılan veri veya bilgi işlem kaynağı erişim noktalarıdır ve HTTP URI'si biçimindedirler. Uç noktalar API'lerin temel URL'sine (ör. http://example.com) eklenerek belirli bir kaynağa veya kaynak kapsayıcısına giden bir yol oluşturur. Bazı uç nokta örnekleri şunlardır:

  • http://example.com/depokonumlari
  • http://example.com/hesaplar
  • http://example.com/calisanlar

Şunlar da geçerli uç noktalardır:

  • http://example.com/depokonumları/istanbul
  • http://example.com/depokonumları/ankara
  • http://example.com/depokonumları/izmir

API'lerin isteklerini tamamlamak için gereken değişkenleri geçirmek amacıyla uç noktalara sorgu dizeleri (ör. http://example.com/ucnokta/?id=1) ekleyebilirsiniz. Uç noktalar, fiillerin (HTTP yöntemlerinin) davranışını belirleyen "isimler" olarak değerlendirilir ve API'ler istekleri karşılamak için bu çerçeveyi kullanır.

Daha ayrıntılı anlatmak gerekirse istemciler, belirli verileri almak veya sunucuda belirli bir eylemi gerçekleştirmek için bir HTTP yöntemi (fiil) ve uç noktadan (isim) oluşan istekler gönderir. Sağlanan yönteme ve uç noktaya göre belirli bir işlemi çevirerek ve gerçekleştirerek istemcinin isteğini karşılayan tarafın sunucu olduğuna dikkat etmek gerekir.

Tüm ağır işlerin arka uçta gerçekleştiği düşünülürse, HTTP yöntemlerinden ve uç noktalardan yararlanan bir API'nin sunucuda yaşadığı ve istemci istekleri için uygulayıcı rolünü üstlendiği söylenebilir. Bu model, sonraki bölümde daha ayrıntılı olarak incelenecek RESTful API'leri genel olarak tanımlamaktadır. API'ler için uç nokta derleme uygulaması yapmak üzere lütfen Cloud Endpoints: Qwik Start laboratuvarına katılın.

RESTful API'ler

HTTP protokolünden, istek yöntemlerinden ve uç noktalardan yararlanan API'ler, RESTful API olarak adlandırılır. REST (Representational State Transfer - Temsili Durum Aktarımı) web tabanlı iletişim standartlarını tanımlayan bir mimari stildir. Google'ın RESTful sistem açıklaması şu şekildedir:

...kaynaklar bir veri deposunda saklanır. Bir istemci, sunucunun belirli bir işlemi (ör. kaynak oluşturma, alma, güncelleme veya silme) gerçekleştirmesi için istek gönderir. Sunucu, işlemi gerçekleştirir ve yanıt gönderir. Bu yanıt genelde belirtilen kaynağın bir temsili biçimindedir.

Bu kaynak odaklı tasarım, REST'in temel ilkesidir. RESTful API'ler şu şekilde modellenir:

...bağımsız bir şekilde ele alınabilen kaynak koleksiyonları... Kaynaklar ve yöntemler, API isimleri ve fiilleri olarak bilinir. HTTP protokolüyle, kaynak adları doğal olarak URL'lerle eşleşir ve yöntemler doğal olarak HTTP yöntemleriyle eşleşir...

Önceki bölümlerde bu yapı taşlarını incelediğiniz için bu terimler size tanıdık geliyor olmalı. REST, API'ler için en yaygın olarak kullanılan çerçevedir. 2010'da herkese açık ağ API'lerinin yaklaşık %74'ü HTTP REST API'leriydi.

RESTful API'ler isteklerinde sorgu dizeleri dışında şu alanları da kullanabilir:

  • Başlık: HTTP isteğinin kendisini ayrıntılandıran parametreler.
  • Gövde: İstemcinin sunucuya göndermek istediği veriler.

Gövde, JSON veya XML veri biçimlendirme diliyle yazılır.

API Veri Biçimleri (JSON)

RESTful API'ler, HTTP istek yönteminin gövdesinde taşınan verilerin dosya biçimi olarak XML veya JSON (JavaScript Object Notation - JavaScript Nesne Gösterimi) kullanır.

JSON daha hafif olduğu, kolay okunduğu ve hızlı ayrıştırıldığı için RESTful API'lerde XML'den daha çok kullanılmaktadır. Sonraki bölümde, JSON söz diziminin ve yapısının kısa bir tanıtımını göreceksiniz. Daha kapsamlı referans için W3C'nin JSON söz dizimi dokümanlarına mutlaka göz atın.

JSON aşağıdaki veri türlerini destekler:

  • Sayılar: Her tür sayı desteklenir, tam sayılar ve kayan nokta değerleri arasında ayrım yoktur.
  • Dizeler: Tırnak işareti arasındaki metin.
  • Boole Değerleri: Doğru veya Yanlış değerleri.
  • Diziler: Benzerliğe göre gruplanan öğeler listesi.
  • Null: "Boş" değer.

JSON verileri anahtar/değer çiftlerinden oluşur. Bu çiftler, veri parçalarına (değer) referans veren bir benzersiz tanımlayıcıdan (anahtar) oluşan bağlı veri parçalarıdır. Anahtar dize türünde olmalıdır, değer ise yukarıda listelenen veri türlerinden herhangi biri olabilir.

Aşağıda basit bir JSON anahtar/değer çiftine örnek verilmiştir:

"Key1" : "Değer 1"

Aşağıdakiler de başka çift örnekleridir:

"Key2" : 64
"Key3" : True
"Key4" : ["bu", "bir", "dizidir"]

JSON nesneleri, anahtar/değer çiftleri olarak düzenlenen verileri gruplamak için { } şeklindeki küme ayraçlarını kullanır. Aşağıda üç adet anahtar/değer çifti barındıran bir nesne örneği verilmiştir:

{
	"Name": "Julie",
	"Hometown": "Los Angeles, CA",
	"Age": 28
}

Bir nesnede depolanan anahtar/değer çiftleri virgülle ayrılır.

JSON Doğrulayıcı

JSON dosyaları sınırsız sayıda anahtar/değer çifti ve/veya nesne barındırabilir. Profesyonel olarak yapılan geliştirme işlerinde yüzlerce, hatta binlerce satır uzunluğunda dosyalar görmek mümkündür. Geliştirici olarak, biçimlendirmede veya söz diziminde yapılan küçücük bir hatanın bütün kod tabanınızı bozmaya yeteceğini bilirsiniz.

jsonlint veya birincil tarayıcınız olarak Chrome kullanıyorsanız JSONView uzantısı gibi JSON doğrulayıcılar, JSON kodunuzdaki söz dizimi ve biçimlendirme sorunlarını hızla belirler ve bunları giderme yolları gösterir.

Biraz JSON doğrulama uygulaması yapın. Yeni bir sekmede jsonlint doğrulayıcısını açın.

Şu kod bloğunu doğrulayıcıya yapıştırın:

{
	"Name": "Julie",
	"Hometown": "Los Angeles, CA",
	"Age": 28
}

Ardından Validate JSON (JSON'ı Doğrula) ifadesini tıklayın. Sonuçlar bölümünde Valid JSON (Geçerli JSON) yazan yeşil bir mesaj alırsınız.

Şimdi aşağıdaki kod bloğunu doğrulayıcıya yapıştırın:

{
	"Name": "Julie"
	   "Hometown": "Los Angeles, CA",
	"Age": 28
}

Validate JSON (JSON'ı Doğrula) ifadesini tıklayın.

Bir virgülün eksik olduğunu ve girintinin doğru yapılmadığını görürsünüz. Girinti düzeltilir ve doğrulayıcı, hataların nerede olduğunu vurgular:

json-error.png

Doğrulayıcı, beklendiği gibi ikinci satırdan sonra bir tanımlayıcının (virgül) eksik olduğunu belirledi. İkinci satırdan sonra bir virgül ekler ve Validate JSON (JSON'ı Doğrula) ifadesini tıklarsanız şu çıkışı alırsınız:

valid-json.png

Laboratuvarlarda API'ler ve JSON kodlarıyla çalışırken bunun gibi bir JSON doğrulayıcıdan yararlanmak, söz dizimi hatalarını ayıklarken size zaman kazandırıp bu sorunları daha kolay çözmenizi sağlayabilir.

Öğrendiklerinizi test etme

Şimdiye kadar ele alınan kavramları pekiştirmek için aşağıdaki çoktan seçmeli soruları yanıtlayın.

Cloud Console'da JSON Dosyası Oluşturma

Paket oluşturmak ve içerik yüklemek için Cloud Shell'de Cloud Storage REST/JSON API çağrıları yaparak öğrendiklerinizi uygulayacaksınız.

Google Cloud Storage API'nin etkin olduğundan emin olmak için bu bağlantıyı yeni bir sekmede açın. Aşağıdaki ekranı göreceksiniz:

JSON_API.png

Şimdi bir Cloud Shell oturumu açın. values.json adlı bir dosya oluşturup düzenlemek için şu komutu çalıştırın:

nano values.json

nano metin düzenleyicide, <PAKET_ADINIZ> kısmını benzersiz bir paket adıyla değiştirerek aşağıdakini kopyalayıp yapıştırın:

{  "name": "<PAKET_ADINIZ>",
   "location": "us",
   "storageClass": "multi_regional"
}

Bunu tamamladıktan sonra CNTRL+XYENTER tuşlarına basarak nano metin düzenleyiciden çıkın.

Böylece şu üç anahtar/değer çiftine sahip nesneyi barındıran bir JSON dosyası oluşturdunuz: name, location ve storageClass. Bunlar, gsutil komut satırı aracıyla veya konsolda paket oluştururken gereken değerlerdir.

Cloud Storage REST/JSON API ile paket oluşturabilmek için önce doğru kimlik doğrulama ve yetkilendirme politikalarını devreye almanız gerekir.

Kimlik Doğrulama ve Yetkilendirme

Ele alınacak son konu, API kimlik doğrulama ve yetkilendirme düzenidir.

  • Kimlik doğrulama, istemcinin kimliğini belirleme işlemidir.
  • Yetkilendirme, kimliği doğrulanan istemcinin bir kaynak kümesi için hangi izinlere sahip olduğunu belirleme işlemidir.

Kimlik doğrulama kim olduğunuzu, yetkilendirme ise ne yapabileceğinizi belirler.

Google API'lerinin kullandığı üç tür kimlik doğrulama/yetkilendirme hizmeti vardır. Bunlar "API Anahtarları", "Hizmet hesapları" ve "OAuth"tur. API'ler, istenen kaynaklara ve kendilerine nereden çağrı yapıldığına bağlı olarak bu kimlik doğrulama hizmetlerinden birini kullanır.

API Anahtarları

API anahtarları, genellikle şifrelenmiş bir dize formunda gelen gizli jetonlardır. API anahtarları hızla oluşturulup kullanılabilir. Herkese açık verileri veya yöntemleri kullanan ve geliştiricilerin hızla çalışmaya başlamasını amaçlayan API'lerde kullanıcıların kimliğini doğrulamak için genellikle API anahtarları kullanılır.

Google Cloud terimleriyle konuşmak gerekirse API anahtarları, API'ye çağrı yapan projeyi belirler. API anahtarları, çağrı yapan projeyi belirleyerek kullanım bilgilerinin projeyle ilişkilendirilmesini sağlar; erişim izni olmayan veya API tarafından etkinleştirilmemiş olan projelerin gönderdiği çağrıları reddedebilir.

OAuth

OAuth jetonları biçim olarak API anahtarlarına benzerdir ancak daha güvenlidirler ve kullanıcı hesaplarına veya kimliklerine bağlanabilirler. Bu jetonlar genellikle API'ler, bir geliştiriciye kullanıcı verilerine erişme olanağı verdiğinde kullanılır.

API anahtarları geliştiricilere bir API'nin tüm işlevleri için erişim verirken OAuth istemci kimlikleri tamamen kapsam temellidir, farklı kimliklere farklı ayrıcalıklar verilir.

Hizmet Hesapları

Hizmet hesabı, tek bir son kullanıcıya değil, uygulamanıza veya bir sanal makineye (VM) ait olan özel bir Google hesabı türüdür. Uygulamanız Google API'lerine çağrı yapmak için hizmet hesabı kimliğini üstlenir, yani kullanıcılar bu işleme doğrudan dahil değildir.

Hizmet hesaplarını kullanmak için hesabın özel anahtarını uygulamanıza sağlayabilir veya Google Cloud Functions, Google App Engine, Google Compute Engine ya da Google Kubernetes Engine kullanırken yararlanabileceğiniz yerleşik hizmet hesaplarını kullanabilirsiniz.

Özel olarak hizmet hesaplarını ve rollerini ele alan bir laboratuvar için bkz. Hizmet Hesapları ve Roller: Temel Bilgiler.

Cloud Storage JSON/REST API kimliğini doğrulama ve yetkilendirme

Cloud Storage, kullanıcı verilerini barındıran ve bu verilere erişim sağlayan bir platformdur. Bu nedenle, Cloud Storage hizmetlerini kullanmadan önce bir OAuth jetonu oluşturmanız gerekir.

OAuth 2.0 playground'u yeni bir sekmede açın. Bu, OAuth jetonlarını kolaylıkla oluşturmanızı sağlayan bir hizmettir.

Aşağı kaydırın ve Cloud Storage API V1'i seçin. Ardından https://www.googleapis.com/auth/devstorage.full_control kapsamını seçin:

storage_full_control_api.png

API'leri Yetkilendir yazan mavi kutuyu tıklayın. Bu işlem bir Google ile Oturum Açma sayfası açar. Qwiklabs kullanıcı adınızı seçin ve daha sonra izin istendiğinde İzin Ver'i tıklayın.

Artık 2. Adım'da bir yetkilendirme kodu oluşturulmuş olur. Jetonlar için yetkilendirme kodu değiş tokuşu yap seçeneğini tıklayın 3. Adım'a götürülürseniz 2. Adım panelini tıklayın. Aşağıdakine benzeyen bir sayfa görürsünüz:

beeb2e2e2585e202.png

Erişim jetonunu kopyalayın, bu jeton aşağıdaki adımda kullanılacaktır.

Cloud Storage JSON/REST API ile paket oluşturma

Cloud Shell oturumunuza dönün. CLI isteminde ls yazın ve Enter tuşuna basın. Önceden oluşturduğunuz values.json dosyasını ve bir README-cloudshell.txt dosyasını görürsünüz:

Çıktı:

README-cloudshell.txt    values.json

OAuth2 jetonunuzu ortam değişkeni olarak ayarlamak için <JETONUNUZ> kısmını oluşturduğunuz erişim jetonuyla değiştirerek aşağıdaki komutu çalıştırın:

export OAUTH2_TOKEN=<JETONUNUZ>

Proje kimliğinizi ortam değişkeni olarak ayarlamak için <PROJE_KİMLİĞİNİZ> kısmını Qwiklabs proje kimliğinizle değiştirerek aşağıdaki komutu çalıştırın:

export PROJECT_ID=<PROJE_KİMLİĞİNİZ>

Şimdi bir Cloud Storage paketi oluşturmak için aşağıdaki komutu çalıştırın:

curl -X POST --data-binary @values.json \
    -H "Authorization: Bearer $OAUTH2_TOKEN" \
    -H "Content-Type: application/json" \
    "https://www.googleapis.com/storage/v1/b?project=$PROJECT_ID"

Şuna benzer bir çıkış alırsınız:

{
  "kind": "storage#bucket",
  "selfLink": "https://www.googleapis.com/storage/v1/b/qwiklabs-gcp-02-5d551758b5a7",
  "id": "qwiklabs-gcp-02-5d551758b5a7",
  "name": "qwiklabs-gcp-02-5d551758b5a7",
  "projectNumber": "670840659006",
  "metageneration": "1",
  "location": "US",
  "storageClass": "MULTI_REGIONAL",
  "etag": "CAE=",
  "timeCreated": "2020-11-11T06:41:40.901Z",
  "updated": "2020-11-11T06:41:40.901Z",
  "iamConfiguration": {
    "bucketPolicyOnly": {
      "enabled": false
    },
    "uniformBucketLevelAccess": {
      "enabled": false
    }
  },
  "locationType": "multi-region"
}

Bu istek, şimdiye kadar öğrendiğiniz her şeyin özetidir. curl CLI aracını kullanarak bir HTTP POST yöntemi isteği yaptınız. values.json dosyasını istek gövdesine ilettiniz. OAuth jetonunu ve JSON spesifikasyonunu istek başlıkları olarak ilettiniz. Bu istek, Google Cloud Proje Kimliğiniz olarak ayarlı bir sorgu dizesi parametresini barındıran Cloud Storage uç noktasına yönlendirildi.

Yeni oluşturulan Cloud Storage Paketinizi görüntüleme

Yeni oluşturulan paketinizi görüntülemek için Gezinme menüsü'nden Depolama > Tarayıcı'yı seçin:

786bb3559131e3c1.png

Tamamlanan Görevi Test Etme

Yerine getirdiğiniz görevi doğrulamak için İlerlememi kontrol et'i tıklayın. Cloud Storage JSON/REST API ile başarılı bir şekilde paket oluşturduysanız bir değerlendirme puanı görürsünüz.

Cloud Storage JSON/REST API ile paket oluşturma

Cloud Storage JSON/REST API kullanarak dosya yükleme

Paketlere dosya yüklemek için Cloud Storage JSON/REST API'yi kullanabilirsiniz.

Aşağıdaki resmi bilgisayarınıza kaydedin ve demo-resim.png olarak adlandırın:

a00af7664effa025.png

Cloud Shell oturumunuzda, sağ üst köşedeki üç nokta menü simgesini ve Dosya yükle'yi tıklayın. demo-resim.png dosyasını seçin. Bu işlem, resmi dizininize ekler.

Resim dosyasının yolunu almak için aşağıdaki komutu çalıştırın:

realpath demo-resim.png

Şuna benzer bir çıkış alırsınız:

/home/gcpstaging25084_student/demo-resim.png

Aşağıdaki komutta <DEMO_RESİM_YOLU> kısmını önceki komutun çıkışıyla değiştirip bu komutu çalıştırarak dosya yolunu ortam değişkeni olarak ayarlayın.

export OBJECT=<DEMO_RESİM_YOLU>

Aşağıdaki komutta <PAKETİNİZ> kısmını paketinizin adıyla değiştirip bu komutu çalıştırarak paket adınızı ortam değişkeni olarak ayarlayın.

export BUCKET_NAME=<PAKETİNİZ>

Şimdi demo resmi Cloud Storage paketinize yüklemek için aşağıdaki komutu çalıştırın:

curl -X POST --data-binary @$OBJECT \
    -H "Authorization: Bearer $OAUTH2_TOKEN" \
    -H "Content-Type: image/png" \
    "https://www.googleapis.com/upload/storage/v1/b/$BUCKET_NAME/o?uploadType=media&name=demo-resim"

Şuna benzer bir çıkış alırsınız:

{
  "kind": "storage#object",
  "id": "qwiklabs-gcp-02-5d551758b5a7/demo-image/1605077118178936",
  "selfLink": "https://www.googleapis.com/storage/v1/b/qwiklabs-gcp-02-5d551758b5a7/o/demo-image",
  "mediaLink": "https://www.googleapis.com/download/storage/v1/b/qwiklabs-gcp-02-5d551758b5a7/o/demo-image?generation=1605077118178936&alt=media",
  "name": "demo-image",
  "bucket": "qwiklabs-gcp-02-5d551758b5a7",
  "generation": "1605077118178936",
  "metageneration": "1",
  "contentType": "image/png",
  "storageClass": "MULTI_REGIONAL",
  "size": "401951",
  "md5Hash": "LbpHpwhnApQKQx9IEXjTsQ==",
  "crc32c": "j5oPrg==",
  "etag": "CPis3Zvy+ewCEAE=",
  "timeCreated": "2020-11-11T06:45:18.178Z",
  "updated": "2020-11-11T06:45:18.178Z",
  "timeStorageClassUpdated": "2020-11-11T06:45:18.178Z"
}

Resmin paketinize eklendiğini görmek için gezinme menüsünü açın ve Depolama > Tarayıcı'yı seçin. Daha sonra paketinizin adını tıklayın. demo-resim dosyasının eklendiğini görürsünüz:

9d8946af3d651c6b.png

Resme tıklamak Nesne ayrıntıları sayfasını açacaktır.

Tamamlanan Görevi Test Etme

Yerine getirdiğiniz görevi doğrulamak için İlerlememi kontrol et'i tıklayın. Cloud Storage JSON/REST API kullanarak başarılı bir şekilde dosya yüklediyseniz bir değerlendirme puanı görürsünüz.

Cloud Storage JSON/REST API kullanarak dosya yükleme

Tebrikler!

Bu laboratuvarda API'lerle ilgili güçlü bir kavrayış geliştirdiniz ve Cloud Storage JSON/REST API'yi uygulamalı olarak deneyimlediniz. Cloud APIs, API mimarisi, HTTP protokolü ve yöntemleri, uç noktalar, RESTful API'ler, JSON ve API kimlik doğrulama uygulamaları hakkında bilgi edindiniz. Artık Qwiklabs'de daha fazla API laboratuvarına katılmaya hazırsınız.

Laboratuvarınızı sonlandırma

Böylece uygulamalı laboratuvarınızın sonuna geldiniz. Bu sayfanın üst kısmındaki Laboratuvarı Sonlandır düğmesini tıklayın.

end_lab.gif

Lütfen Qwiklabs'de katıldığınız tüm laboratuvarları puanlayın. Memnun kaldıysanız şu şekilde puanlayabilirsiniz: dd499d096220243f.png

"Yorum Yap" penceresinde deneyiminizle ilgili yorumlarınızı paylaşın. Görüşleriniz Google için çok değerlidir.

Laboratuvarı sonlandırdığınızda laboratuvar projesine, hizmetlerine ve laboratuvarda yaptığınız çalışmalara erişiminiz kaldırılır. Cloud Console'a geri giderseniz oturumunuzun otomatik olarak kapatıldığını görürsünüz. Artık bu sekmeyi kapatabilirsiniz.

assistant-quest-badge.png ml-badge.png gsuite-badge.png c-badge.png API_Ex_badge.png

Görevinizi Tamamlama

Rehbersiz tamamlanabilen bu laboratuvar, şu Qwiklabs Görevlerinin bir parçasıdır: Ok Google: Google Asistan ile Etkileşimli Uygulamalar Derleme, Makine Öğrenimi API'leri, G Suite: Entegrasyonlar, C# ile Veri ve Makine Öğrenimi Uygulamaları Geliştirme ve API'leri Keşfetme.

Görev, belirli bir konudaki öğrenme yolunu oluşturan bir dizi ilgili laboratuvarı kapsar. Bu Görevi tamamladığınızda başarınızın ödülü olarak yukarıdaki rozeti alırsınız. Rozetlerinizi herkese açık hale getirebilir ve rozetin bağlantısını online özgeçmişinizde veya sosyal medya hesabınızda paylaşabilirsiniz. Bir Göreve kaydolun ve bu laboratuvara katıldıysanız tamamlama kredisini anında kazanın. Katılabileceğiniz diğer Qwiklabs Görevlerine göz atın.

Sonraki Adımlar / Daha Fazla Bilgi

Daha fazla API deneyimi edinmek için aşağıdaki laboratuvarlara mutlaka göz atın:

Google Cloud Eğitimi ve Sertifikasyon

...Google Cloud teknolojilerinden en iyi şekilde yararlanmanıza yardımcı olur. Derslerimizde teknik becerilere odaklanırken en iyi uygulamalara da yer veriyoruz. Gerekli yetkinlik seviyesine hızlıca ulaşmanız ve öğrenim maceranızı sürdürebilmeniz için sizlere yardımcı olmayı amaçlıyoruz. Temel kavramlardan ileri seviyeye kadar farklı eğitim programlarımız mevcut. Ayrıca, yoğun gündeminize uyması için talep üzerine sağlanan, canlı ve sanal eğitim alternatiflerimiz de var. Sertifikasyonlar ise Google Cloud teknolojilerindeki becerilerinizi ve uzmanlığınızı doğrulamanıza ve kanıtlamanıza yardımcı oluyor.

Kılavuzun Son Güncellenme Tarihi: 20 Kasım 2020
Laboratuvarın Son Test Edilme Tarihi: 20 Kasım 2020

Telif Hakkı 2020 Google LLC Tüm hakları saklıdır. Google ve Google logosu, Google LLC şirketinin ticari markalarıdır. Diğer tüm şirket ve ürün adları ilişkili oldukları şirketlerin ticari markaları olabilir.