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.