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 zwar 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 eine Vielzahl von Endpunkten verwalten und testen.

Mit dem folgenden Code wird beispielsweise der Endpunkt writePreview aufgerufen, um die Projektvorschau eines Nutzers auf Grundlage 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 in der REST-Referenz zur 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. Dies gilt auch für Streamingendpunkte von Clients, bei denen jede Anfrage im Stream maximal 10 MB groß sein darf.

Wenn die Nutzlast 10 MB überschreitet, sollte vom Actions SDK-Server der Fehler 400 angezeigt werden.

Best Practices

Für die Verwendung der Actions API werden die folgenden Best Practices dringend empfohlen.

Anfrageheader „x-goog-user-project“ festlegen

Wenn Sie ein Tool oder eine Anwendung für Ihre Nutzer erstellen, möchten Sie vielleicht eher das Projekt eines Nutzers in Rechnung stellen und für Kontingentlimits verwenden als Ihr Clientprojekt. Wenn Sie ein Projekt für Abrechnungs- und Kontingentzwecke angeben möchten, legen Sie den Anfrageheader x-goog-user-project fest.

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

User-Agent-Anfrageheader festlegen

Lege mit dem user-agent-Anfrageheader einen geeigneten User-Agent fest. So kann die API feststellen, 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 Client-Streamingendpunkte senden. Anfragen über die Clientbibliothek sind von dieser Einschränkung nicht betroffen.

Wenn Sie HTTP-Anfragen zum Aufrufen von WritePreview, CreateVersion oder WriteDraft verwenden, sollten Sie ein Zeitlimit implementieren, um Anfragen zu verarbeiten, die nicht erfolgreich sind.

Wenn Sie einen Antwortheader mit einem anderen Statuscode als 200 erhalten, sollte der Code den Stream nach einem bestimmten Zeitraum beenden. Dieses Problem betrifft nur Client-Streamingendpunkte. Beispielsweise hat das gactions-Tool, das die Actions API verwendet, ein Zeitlimit von 5 Sekunden.