Bestimmte Felder einer Datei zurückgeben

Verwenden Sie den Abfrageparameter fields im Methodenaufruf, um die erforderlichen Felder zurückzugeben und die Leistung zu verbessern.

Standardmäßig sendet der Server eine Reihe von Feldern zurück, die für die abgefragte Ressource spezifisch sind. Die Methode files.get gibt beispielsweise nur id, name und mimeType für die Ressource files zurück. Die Methode permissions.get gibt einen anderen Satz von Standardfeldern für eine permissions-Ressource zurück.

Nachdem ein Server eine gültige Anfrage verarbeitet hat, die den Abfrageparameter fields enthält, sendet er einen HTTP 200 OK-Statuscode zusammen mit den angeforderten Daten zurück. Wenn der Abfrageparameter der Felder einen Fehler enthält oder ungültig ist, gibt der Server den Statuscode HTTP 400 Bad Request zusammen mit einer Fehlermeldung zurück, die angibt, was bei der Feldauswahl falsch ist. Beispielsweise wird durch files.list(fields='files(id,capabilities,canAddChildren)') der Fehler „Ungültige Feldauswahl „CanAddChildren““ zurückgegeben. Der richtige Abfrageparameter für Felder in diesem Beispiel ist files.list(fields='files(id,capabilities/canAddChildren)').

Rufen Sie die Dokumentationsseite der abgefragten Ressource auf, um die Felder zu ermitteln, die Sie mit dem Parameter fields zurückgeben können. Informationen dazu, welche Felder Sie für eine Datei zurückgeben können, finden Sie beispielsweise in der Dokumentation zu files.

Formatregeln für Feldparameter

Das Format des Feldwertes für den Anforderungsparameter basiert grob auf der XPath-Syntax. Die folgenden Formatierungsregeln gelten für den Parameter fields. Alle diese Regeln verwenden Beispiele, die sich auf die Methode files.get beziehen.

  • Verwenden Sie eine durch Kommas getrennte Liste, um mehrere Felder auszuwählen, z. B. 'name, mimeType'.

  • Verwenden Sie a/b, um das Feld b auszuwählen, das im Feld a verschachtelt ist, z. B. 'capabilities/canDownload'. Weitere Informationen finden Sie unter Felder einer verschachtelten Ressource abrufen.

  • Verwenden Sie ein untergeordnetes Auswahlzeichen, um eine Reihe von untergeordneten Feldern von Arrays oder Objekten anzufordern, indem Sie Ausdrücke in Klammern setzen () (). 'permissions(id)' gibt beispielsweise nur die Berechtigungs-ID für jedes Element im Berechtigungsarray zurück.

  • Verwenden Sie ein Sternchen als Platzhalter in der Feldauswahl, um alle Felder in einem Objekt zurückzugeben. Beispielsweise werden mit 'permissions/permissionDetails/*' alle verfügbaren Felder für Berechtigungsdetails pro Berechtigung ausgewählt. Die Verwendung dieses Platzhalters kann sich negativ auf die Leistung der Anfrage auswirken.

Beispiel ansehen

Anfrage

In diesem Beispiel geben wir den Datei-ID-Pfadparameter und mehrere Felder als Abfrageparameter in der Anfrage an. Die Antwort gibt die Feldwerte für die Datei-ID zurück.

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

Antwort

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

Felder einer verschachtelten Ressource abrufen

Wenn ein Feld auf eine andere Ressource verweist, können Sie angeben, welche Felder der verschachtelten Ressource abgerufen werden sollen.

Wenn Sie beispielsweise das Feld role (verschachtelte Ressource) der Ressource permissions abrufen möchten, verwenden Sie eine der folgenden Optionen:

  • permissions.get mit fields=role oder fields=*.
  • files.get mit fields=permissions(role) oder fields=permissions/role.
  • files.get mit fields=permissions, um alle Felder der verschachtelten Ressource zu implizieren.
  • changes.list mit fields=changes(file(permissions(role))).

Wenn Sie mehrere Felder abrufen möchten, verwenden Sie eine durch Kommas getrennte Liste. Beispiel: files.list mit fields=files(id,name,createdTime,modifiedTime,size).

Beispiel ansehen

Anfrage

In diesem Beispiel geben wir den Datei-ID-Pfadparameter und mehrere Felder, einschließlich bestimmter Felder der Ressource für verschachtelte Berechtigungen, als Abfrageparameter in der Anfrage an. Die Antwort gibt die Feldwerte für die Datei-ID zurück.

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

Antwort

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