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çina/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
veyafields=*
ilepermissions.get
.fields=permissions(role)
veyafields=permissions/role
ilefiles.get
.- İç içe yerleştirilmiş kaynağın tüm alanlarını ima etmek için
fields=permissions
ilefiles.get
. fields=changes(file(permissions(role)))
ilechanges.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" } ] }