Actions API

Die Actions API bietet Endpunkte zum Erstellen, Verwalten und Testen deiner Aktion.

Clientbibliothek (Node.js)

Sie können den RESTful-Dienst der Actions API verwenden, indem Sie direkte HTTP-Anfragen an den Server senden. Wir stellen jedoch eine Clientbibliothek zur Verfügung, die den Zugriff auf die Endpunkte über Node.js vereinfacht. Mit der Actions API-Clientbibliothek kannst du deine Aktion über verschiedene Endpunkte verwalten und testen.

Mit dem folgenden Code wird beispielsweise ein Aufruf an den Endpunkt writePreview durchgeführt, um die Projektvorschau eines Nutzers anhand des bereitgestellten Modells zu aktualisieren:

   import {ActionsSdkClient} from '@assistant/actions';
   import { promisify } from 'util';
   import * as stream from 'stream';

   const PROJECT_ID = '<PROJECT_ID>';
   const VERSION = 123;

   const projectPath = `projects/${PROJECT_ID}`;
   const versionPath = `projects/${PROJECT_ID}/versions/${VERSION}`;

    async function publishPreview(projectPath, versionPath) {
      const request = {
        parent: projectPath,
        previewSettings: {sandbox: {value: true}},
        submittedVersion: {version: versionPath}
      };

      const client = new ActionsSdkClient();
      const stream = client.writePreview(()=>{});
      stream.write(request);
      stream.end();
      const finished = promisify(stream.finished);
      await finished(stream);
    }

Eine Installationsanleitung und Referenzmaterial für die Node.js-Clientbibliothek der Actions API finden Sie in der Dokumentation zur Bibliothek und zur REST-Referenz für die Actions API.

Voraussetzungen

Die folgenden Anforderungen gelten für Anfragen an die Actions API.

Größe der Anfragenutzlast

Anfragen an die Actions API dürfen maximal 10 MB groß sein. Dazu gehören Client-Streamingendpunkte, wobei jede Anfrage im Stream 10 MB groß sein muss oder weniger.

Wenn Ihre Nutzlast 10 MB überschreitet, sollten Sie in den Aktionen die Fehlermeldung 400 erhalten SDK-Server.

Best Practices

Die folgenden Best Practices werden dringend empfohlen, wenn die Actions API verwenden.

Anfrageheader "x-goog-user-project" festlegen

Wenn Sie ein Tool oder eine Anwendung für Ihre Nutzer entwickeln, möchten Sie vielleicht, Projekt abgerechnet und für Kontingentlimits verwendet wird, nicht Ihr Clientprojekt. Wenn Sie ein Projekt zu Abrechnungs- und Kontingentzwecken angeben möchten, legen Sie das Feld x-goog-user-project-Anfrageheader.

Gültige Werte Die Projekt-ID für eine vorhandene Google Cloud-Projekt
Beispiel x-goog-user-project: my-project
Details Das im Header angegebene Projekt wird für Kontingentlimits verwendet und abgerechnet für die mit der Anfrage verbundenen Gebühren.

Anfrageheader für User-Agent festlegen

Lege mit dem Anfrageheader user-agent einen geeigneten User-Agent fest. Dieses hilft der API zu bestimmen, ob Anfragen von Partnern stammen.

Bekannte Einschränkungen

In diesem Abschnitt werden bekannte Einschränkungen der Actions API beschrieben.

Zeitlimit für Client-Streamingendpunkte

Diese Einschränkung gilt nur für HTTP-Anfragen, die Sie an Clientstreaming stellen Endpunkten. Anfragen über die Clientbibliothek werden nicht von dieser Einschränkung betroffen sind.

Wenn Sie WritePreview, CreateVersion oder WriteDraft über HTTP-Anfragen aufrufen, empfehlen, eine Zeitüberschreitung für Anfragen zu implementieren, erfolgreich war.

Wenn Sie einen Antwortheader erhalten, der einen anderen Statuscode als 200 angibt, Durch den Code sollte der Stream nach einer bestimmten Zeit beendet werden. Dieses Problem betrifft nur Client-Streaming-Endpunkte. Zum Beispiel das gactions-Tool, die die Actions API verwendet, ein Zeitlimit von 5 Sekunden hat.