En iyi uygulamalar

.

Yetkilendirme

Google Fotoğraflar API'lerine yapılan tüm isteklerin, kimliği doğrulanmış bir kullanıcı tarafından yetkilendirilmesi gerekir.

OAuth 2.0 için yetkilendirme işleminin ayrıntıları bağlı olarak biraz farklılık gösterir bir uygulama kampanyası oluşturacaksınız. Aşağıdaki genel süreç tüm uygulama türleri için geçerlidir:

  1. Aşağıdakileri yaparak yetkilendirme sürecine hazırlanın:
    • Uygulamanızı Google API Konsolu.
    • Fotoğraflar API'lerini etkinleştirin ve istemci kimliği ile istemci gizli anahtarı gibi OAuth ayrıntılarını alın. Daha fazla bilgi için bkz. Kullanmaya başlayın.
  2. Uygulama, kullanıcı verilerine erişmek için Google'dan belirli bir erişim kapsamı ister.
  3. Google, kullanıcıya uygulamayı kullanıcının verilerinden bazılarını istemeye yetkilendirmesi için bir izin ekranı gösterir.
  4. Kullanıcı onaylarsa Google, uygulamaya bir erişim jetonu sağlar Kısa bir süre sonra süresi dolan.
  5. Uygulama, erişim jetonunu isteğe ekleyerek kullanıcı verileri için istekte bulunur.
  6. Google, isteğin ve jetonun geçerli olduğuna karar verirse isteyeceğiz.

Uygulamanız için hangi kapsamların uygun olduğunu belirlemek üzere Yetkilendirme kapsamlarını inceleyin.

Bazı uygulama türlerinde, yeni erişim jetonları almak için yenileme jetonları kullanmak gibi ek adımlar bulunur. Ayrıntılı bilgi için Google’a Erişim için OAuth 2.0'ı Kullanma API'ler.

Önbelleğe alma

Verileri güncel tutun.

Performans nedeniyle medya içeriklerini (ör. küçük resimler, fotoğraflar veya videolar) geçici olarak saklamanız gerekiyorsa kullanım yönergelerimize göre bu içerikleri 60 dakikadan uzun süre önbelleğe almayın.

Ayrıca, yaklaşık 60 dakika sonra süresi dolan baseUrls değerini de saklamamalısınız.

Bir kullanıcının kitaplığındaki içeriği benzersiz şekilde tanımlayan medya öğesi kimlikleri ve albüm kimlikleri önbelleğe alma kısıtlamasından muaftır. Bu kimlikleri süresiz olarak saklayabilirsiniz (uygulamanızın gizlilik politikasına tabidir). Uygun uç noktaları kullanarak erişilebilir URL'leri ve verileri tekrar almak için medya öğesi kimliklerini ve albüm kimliklerini kullanın. Örneğin, Daha fazla bilgi için Medya alma item veya Listing tıklayın.

Yenilenecek çok sayıda medya öğeniz varsa medya öğelerini döndüren arama parametrelerini depolamak ve verileri yeniden yüklemek için sorguyu yeniden göndermek daha verimli olabilir.

SSL erişimi

Aşağıdaki URL'yi kullanan tüm Fotoğraflar API'si web hizmeti istekleri için HTTPS gereklidir:

https://photoslibrary.googleapis.com/v1/service/output?parameters

HTTP üzerinden yapılan istekler reddedilir.

Hata işleme

API'den döndürülen hataların nasıl işleneceği hakkında bilgi için Cloud API'leri Kullanma hataları.

Başarısız istekleri yeniden deneme

İstemciler, eksponansiyel geri yükleme ile 5xx hatalarını aşağıdaki şekilde yeniden denemelidir: Üstel geri yükleme. Minimum gecikme 1 s olmalıdır izin verilmez.

429 hataları için istemci minimum 30s gecikmesiyle yeniden deneyebilir. Diğer tüm cihazlar için hata, yeniden deneme yapılamayabilir. İsteğinizin idempotent olduğundan emin olun ve hata mesajına göz atın.

Eksponansiyel geri yükleme

Nadir durumlarda isteğinizin sunumu sırasında bir sorun yaşanabilir. 4XX veya 5XX HTTP yanıt kodu alabilir ya da TCP bağlantısı istemciniz ile Google'ın sunucusu arasında bir noktada başarısız olabilir. Genellikle isteği tekrar denemek faydalı olur. Orijinal istek başarısız olduğunda takip isteği başarılı olabilir. Ancak, Google'ın sunucularına tekrar tekrar istek göndererek döngü oluşturmamak önemlidir. Bu döngü davranışı, istemciniz ile Google arasındaki ağda aşırı yük oluşturabilir ve birçok taraf için soruna neden olabilir.

Daha iyi bir yaklaşım, denemeler arasındaki gecikmeleri artırarak tekrar denemektir. Genellikle gecikme, her denemede çarpımsal bir faktöre göre artırılır. üstel geri yükleme (backoff) değerleridir.

Ayrıca, uygulamada daha yüksek bir yeniden deneme kodu bulunmadığından da ve kısa bir arka arkaya yinelenen isteklere yol açan çağrı zinciridir.

Google API'lerinin gecikmeli kullanımı

Kötü tasarlanmış API istemcileri hem internete hem de Google'ın sunucularına gereğinden fazla yük bindirebilir. Bu bölümde projenizin başarısızlığa uğramasını önlemek için geliştirmeyi öğreneceksiniz. Bu en iyi uygulamalardan yararlanmanız, API'lerin yanlışlıkla kötüye kullanılması nedeniyle uygulamanızın engellenmesini önlemenize yardımcı olabilir.

Senkronize istekler

Google'ın API'lerine gönderilen çok sayıda senkronize istek, Google'ın altyapısına yapılan bir Dağıtılmış Hizmet Reddi (DDoS) saldırısı gibi görünebilir ve buna göre ele alınabilir. Bunun olmaması için API isteklerinin istemciler arasında senkronize edilmediğinden emin olmanız gerekir.

Örneğin, geçerli saat diliminde saati gösteren bir uygulamayı düşünün. Bu uygulama muhtemelen istemci işletim sisteminde alarm kuracaktır dakikanın başında uyandırırsınız. Böylece, gösterilen saat güncellendi. Uygulama, bu alarmla ilişkili işlem kapsamında herhangi bir API çağrısı yapmamalıdır.

Sabit bir alarma karşılık olarak API çağrıları yapmak kötü bir davranıştır, çünkü Farklı zaman aralıklarında bile olmak üzere, API çağrılarının dakikanın başında senkronize edilmesi dağıtılmaya başlanır. Kötü tasarlanmış bir uygulama, her dakikanın başında normal seviyelerin altmış katı kadar trafik sıçraması oluşturur.

Bunun yerine, rastgele seçilen bir saate ayarlanmış ikinci bir alarmın olması iyi bir tasarım olabilir. Bu ikinci alarm tetiklendiğinde uygulama, ihtiyaç duyduğu tüm API'lere çağrı yapar ve sonuçları depolar. Uygulama, dakikanın başında ekranını güncellemek için API'yi tekrar çağırmak yerine daha önce depolanan sonuçları kullanır. Bu yaklaşımda, API çağrıları zaman içinde eşit olarak yayılır. Ayrıca, Ekran güncellenirken API çağrılarının oluşturulmasını geciktirmez.

Dakikanın başlangıcı dışında, senkronizasyon için hedeflememeniz gereken diğer yaygın zaman aralıkları, bir saatin ve her günün başlangıcı olan gece yarısıdır.