En iyi uygulamalar

Yetkilendirme

Google Photos Library API'ye yapılan tüm istekler, kimliği doğrulanmış bir kullanıcı tarafından yetkilendirilmelidir.

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.
    • Library API'yi etkinleştirme ve şu gibi OAuth ayrıntılarını alma: istemci kimliği ve istemci gizli anahtarı. Daha fazla bilgi için bkz. Kullanmaya başlayın.
  2. Uygulama, kullanıcı verilerine erişmek için Google'dan olduğunu varsayalım.
  3. Google, kullanıcıya içeriği yetkilendirmesini isteyen bir izin ekranı gösterir. bazı verilerini isteyebilir.
  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 ekleyerek kullanıcı verileri için bir istekte bulunur eklemesi gerekir.
  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ürleri için bu işlem, yeni erişim jetonları almak için jetonları yenileyin. 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.

Medya içeriklerini (küçük resimler, fotoğraflar veya videolar gibi) geçici olarak depolamanız gerekiyorsa performansından dolayı, kullanımımız başına 60 dakikadan uzun bir süre önbelleğe almayın aykırıdır.

Yaklaşık 60 gün sonra süresi dolan baseUrls öğesini de depolamamalısınız. dakika.

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 depolayabilirsiniz (uygulamanızın gizlilik politikasına tabidir). Medya öğesi kimliklerini ve albüm kimliklerini kullan uygun uç noktaları kullanarak erişilebilir URL'leri ve verileri tekrar almak için. Örneğin, Daha fazla bilgi için Medya alma item veya Listing tıklayın.

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

SSL erişimi

HTTPS, aşağıdaki URL:

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 hata için istemci en az 30s gecikmeyle 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

Nadiren, isteğiniz yerine getirilirken bir şeyler ters gidebilir. 4XX veya 5XX HTTP yanıt kodu ya da TCP bağlantısı bir yerde başarısız olabilir istemciniz ile Google'ın sunucusu arasında bağlantı kurabilirsiniz. Çoğu zaman aynı işlemi tekrar isteğinde bulunabilirsiniz. Orijinal istek başarısız olduğunda takip isteği başarılı olabilir. Ancak, döngü oluşturmamak, Google sunucularına sürekli olarak istek göndermek önemlidir. Bu Döngüsel davranış istemciniz ile Google arasındaki ağda aşırı yüke neden olabilir 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 ve Google'ın sunucularında çalışır. Bu bölümde, proje yönetimiyle ilgili geliştirmeyi öğreneceksiniz. Bu en iyi uygulamalardan yararlanmak, API'lerin yanlışlıkla kötüye kullanımı nedeniyle engellenen uygulama.

Senkronize istekler

Google'ın API'lerine yapılan senkronize edilmiş çok sayıda istek aşağıdaki gibi görünebilir: Dağıtılmış Hizmet Reddi (DDoS) saldırısı ve uygun şekilde ele alınır. Bunu önlemek için API isteklerinin senkronize edilmez.

Örneğin, geçerli saatin saatini gösteren bir uygulama düşünün bölge. 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, işleme kapsamında herhangi bir API çağrısı yapmamalıdır o alarmla bağlantılı.

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 API çağrılarının dakikanın başında senkronize edilmesi dağıtılmaya başlanır. Kötü tasarlanmış bunu yapması, normalin altmış katı tutarında trafik artışına neden olur. her dakikanın başında.

Bunun yerine, rastgele bir ikinci alarma sahip olmak olası iyi bir tasarımdır seçilebilir. Bu ikinci alarm çaldığında, uygulama herhangi bir numarayı ve sonuçları depolar. Başlangıcının başlangıcında görünümünü güncellemek dakika içinde arama yapmak yerine daha önce saklanan tekrar API'ye dokunun. 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, diğer yaygın senkronizasyon zamanları bir saatin başında, hedefin başlangıcının her gün gece yarısı yapılmalıdır.