Performansı Artırma

Bu dokümanda, uygulamanızın performansını iyileştirmek için kullanabileceğiniz bazı teknikler açıklanmaktadır. Bazı durumlarda, sunulan fikirleri örneklendirmek için diğer API'lerden veya genel API'lerden örnekler kullanılır. Ancak aynı kavramlar Android Over The Air API için de geçerlidir.

gzip kullanarak sıkıştırma

Her istek için gereken bant genişliğini azaltmanın kolay ve kullanışlı bir yolu, gzip sıkıştırmasını etkinleştirmektir. Bu işlem, sonuçların sıkıştırılmış sürümünü açmak için ek CPU süresi gerektirse de ağ maliyetlerindeki denge genellikle bu husus için çok değerli bir çözümdür.

Gzip ile kodlanmış bir yanıt almak için iki şey yapmanız gerekir: Bir Accept-Encoding üst bilgisi ayarlayın ve kullanıcı aracınızı gzip dizesini içerecek şekilde değiştirin. gzip sıkıştırmasını etkinleştirmek için doğru şekilde oluşturulmuş HTTP üstbilgilerini gösteren örnek:

Accept-Encoding: gzip
User-Agent: my program (gzip)

Kısmi kaynaklarla çalışma

API çağrılarınızın performansını iyileştirmenin diğer bir yolu, verilerin yalnızca ilgilendiğiniz bölümünü göndermek ve almaktır. Bu sayede uygulamanız gereksiz alanları aktarmak, ayrıştırmak ve depolamaktan kaçınarak ağ, CPU ve bellek gibi kaynakları daha verimli bir şekilde kullanabilir.

İki tür kısmi istek vardır:

  • Kısmi yanıt: Yanıta dahil edilecek alanları belirttiğiniz istek (fields istek parametresini kullanın).
  • Yama: Yalnızca değiştirmek istediğiniz alanları gönderdiğiniz bir güncelleme isteği (PATCH HTTP fiilini kullanın).

Kısmi istek gönderme hakkında daha fazla bilgiyi aşağıdaki bölümlerde bulabilirsiniz.

Kısmi yanıt

Sunucu, istekleri işledikten sonra varsayılan olarak kaynağın tam temsilini geri gönderir. Daha iyi performans için sunucudan yalnızca gerçekten ihtiyaç duyduğunuz alanları göndermesini isteyebilir ve bunun yerine kısmi bir yanıt alabilirsiniz.

Kısmi bir yanıt istemek için fields istek parametresini kullanarak döndürülmesini istediğiniz alanları belirtin. Bu parametreyi, yanıt verileri döndüren herhangi bir istekle kullanabilirsiniz.

fields parametresinin yalnızca yanıt verilerini etkilediğini unutmayın; göndermeniz gereken verileri (varsa) etkilemez. Kaynakları değiştirirken gönderdiğiniz veri miktarını azaltmak için yama isteği kullanın.

Örnek

Yama (kısmi güncelleme)

Ayrıca kaynakları değiştirirken gereksiz verilerin gönderilmesini önleyebilirsiniz. Yalnızca değiştirdiğiniz belirli alanlar için güncellenmiş verileri göndermek istiyorsanız HTTP PATCH fiilini kullanın. Bu belgede açıklanan yama semantikleri, kısmi güncellemenin eski GData uygulamasına kıyasla farklıdır (ve daha basittir).

Aşağıdaki kısa örnekte, küçük bir güncelleme yapmak için göndermeniz gereken verilerin, düzeltme kullanılarak nasıl en aza indirildiği gösterilmektedir.

Örnek

Yamaya verilen yanıtı işleme

Geçerli bir düzeltme isteği işlendikten sonra API, değiştirilen kaynağın tam temsiliyle birlikte bir 200 OK HTTP yanıt kodu döndürür. API tarafından ETag'ler kullanılıyorsa sunucu, PUT ürününde olduğu gibi bir yama isteğini başarıyla işlediğinde ETag değerlerini günceller.

Yama isteği, döndürdüğü veri miktarını azaltmak için fields parametresini kullanmadığınız sürece kaynak temsilinin tamamını döndürür.

Bir düzeltme isteği, söz dizimi veya anlam açısından geçersiz olan yeni bir kaynak durumuyla sonuçlanırsa sunucu bir 400 Bad Request veya 422 Unprocessable Entity HTTP durum kodu döndürür ve kaynak durumu değişmeden kalır. Örneğin, zorunlu bir alanın değerini silmeye çalışırsanız sunucu bir hata döndürür.

PATCH HTTP fiili desteklenmediğinde alternatif gösterim

Güvenlik duvarınız HTTP PATCH isteklerine izin vermiyorsa bir HTTP POST isteği gönderin ve geçersiz kılma üst bilgisini aşağıdaki gibi PATCH olarak ayarlayın:

POST https://www.googleapis.com/...
X-HTTP-Method-Override: PATCH
...

Yama ile güncelleme arasındaki fark

Pratikte, HTTP PUT fiilini kullanan bir güncelleme isteği için veri gönderdiğinizde yalnızca zorunlu veya isteğe bağlı alanları göndermeniz gerekir. Sunucu tarafından ayarlanan alanlar için değer gönderirseniz bu değerler yoksayılır. Bu, kısmi güncelleme yapmanın başka bir yolu gibi görünse de bu yaklaşımın bazı sınırlamaları vardır. HTTP PUT fiili kullanılan güncellemelerde, gerekli parametreleri sağlamazsanız istek başarısız olur ve isteğe bağlı parametreleri sağlamazsanız daha önce ayarlanmış veriler temizlenir.

Bu nedenle, yamayı kullanmak çok daha güvenlidir. Yalnızca değiştirmek istediğiniz alanlar için veri sağlarsınız. Atladığınız alanlar temizlenmez. Bu kuralın tek istisnası, yinelenen öğeler veya dizilerde ortaya çıkar: Tümünü atlarsanız oldukları gibi kalırlar; Herhangi birini sağlarsanız tüm grup, sağladığınız grupla değiştirilir.