Dosya için belirli alanları döndürme

Tam olarak ihtiyacınız olan alanları döndürmek ve performansı artırmak için yöntem çağrınızda fields sorgu parametresini kullanın.

Varsayılan olarak sunucu, sorgulanan kaynağa özel bir dizi alan gönderir. Örneğin, files.get yöntemi, files kaynağı için yalnızca id, name ve mimeType değerlerini döndürebilir. permissions.get yöntemi, permissions kaynağı için farklı bir varsayılan alan grubu döndürür.

Bir sunucu, fields sorgu parametresini içeren geçerli bir isteği işledikten sonra istenen verilerle birlikte bir HTTP 200 OK durum kodu geri gönderir. Alan sorgu parametresinde bir hata varsa veya geçersizse sunucu, alan seçiminizle ilgili sorunun ne olduğunu belirten bir hata mesajıyla birlikte HTTP 400 Bad Request durum kodu döndürür. Örneğin, files.list(fields='files(id,capabilities,canAddChildren)'), "Geçersiz alan seçimi canAddChildren" hatasını verir. Bu örnek için doğru alan sorgu parametresi files.list(fields='files(id,capabilities/canAddChildren)') şeklindedir.

fields parametresini kullanarak döndürebileceğiniz alanları belirlemek için sorguladığınız kaynağın belgeler sayfasını ziyaret edin. Örneğin, bir dosya için hangi alanları döndürebileceğinizi görmek için files kaynak dokümanlarına bakın.

Alan parametresi biçim kuralları

Alan istek parametresi değerinin biçimi, genel olarak XPath söz dizimine bağlıdır. Aşağıda, fields parametresi için biçimlendirme kuralları verilmiştir. Bu kuralların tümünde, files.get yöntemiyle ilgili örnekler kullanılır.

  • 'name, mimeType' gibi birden çok alan seçmek için virgülle ayrılmış liste kullanın.

  • a alanında iç içe yerleştirilmiş b alanını seçmek için a/b yöntemini kullanın (ör. 'capabilities/canDownload'). Daha fazla bilgi edinmek için İç içe yerleştirilmiş bir kaynağın alanlarını getirme bölümünü inceleyin.

  • İfadeleri parantez "()" içine yerleştirerek dizilerin veya nesnelerin belirli bir alt alan kümesini istemek için bir alt seçici kullanın. Örneğin, 'permissions(id)', yalnızca izinler dizisindeki her bir öğe için izin kimliğini döndürür.

  • Bir nesnedeki tüm alanları döndürmek için alan seçimlerinde yıldız işaretini joker karakter olarak kullanın. Örneğin 'permissions/permissionDetails/*', her bir izin için mevcut tüm izin ayrıntıları alanlarını seçer. Bu joker karakterin kullanılmasının, istek üzerinde performans üzerinde olumsuz etkilere yol açabileceğini unutmayın.

Örnek göster

İstek

Bu örnekte, istekte bir sorgu parametresi olarak dosya kimliği yolu parametresini ve birden fazla alanı sağlıyoruz. Yanıt, dosya kimliği için alan değerlerini döndürür.

GET https://www.googleapis.com/drive/v3/files/FILE_ID?fields=name,starred,shared

Yanıt

{
  "name": "File1",
  "starred": false,
  "shared": true
  }
}

İç içe yerleştirilmiş bir kaynağın alanlarını getirin

Bir alan başka bir kaynağa başvurduğunda, iç içe yerleştirilmiş kaynağın hangi alanlarının getirilmesi gerektiğini belirtebilirsiniz.

Örneğin, permissions kaynağının role alanını (iç içe yerleştirilmiş kaynak) almak için aşağıdaki seçeneklerden birini kullanın:

  • fields=role veya fields=* ile permissions.get.
  • fields=permissions(role) veya fields=permissions/role ile files.get.
  • İç içe yerleştirilmiş kaynağın tüm alanlarını ima etmek için fields=permissions ile files.get.
  • fields=changes(file(permissions(role))) ile changes.list.

Birden çok alan almak için virgülle ayrılmış liste kullanın. Örneğin, fields=files(id,name,createdTime,modifiedTime,size) ile files.list.

Örnek göster

İstek

Bu örnekte, istekte sorgu parametresi olarak dosya kimliği yolu parametresini ve iç içe yerleştirilmiş izinler kaynağının belirli alanları da dahil olmak üzere birden fazla alanı sağlıyoruz. Yanıt, dosya kimliği için alan değerlerini döndürür.

GET https://www.googleapis.com/drive/v3/files/FILE_ID?fields=name,starred,shared,permissions(kind,type,role)

Yanıt

{
  "name": "File1",
  "starred": false,
  "shared": true,
  "permissions": [
    {
      "kind": "drive#permission",
      "type": "user",
      "role": "owner"
    }
  ]
}