API Actions

L'API Actions fournit des points de terminaison pour vous aider à créer, gérer et tester votre action.

Bibliothèque cliente (Node.js)

Bien que vous puissiez utiliser le service RESTful de l'API Actions en envoyant des requêtes HTTP directes au serveur, nous fournissons une bibliothèque cliente qui facilite l'accès aux points de terminaison depuis Node.js. La bibliothèque cliente de l'API Actions vous permet de gérer et de tester votre action à l'aide de différents points de terminaison.

Par exemple, le code ci-dessous appelle le point de terminaison writePreview pour mettre à jour l'aperçu du projet d'un utilisateur en fonction du modèle fourni:

   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);
    }

Pour obtenir des instructions d'installation et des documents de référence sur la bibliothèque cliente Node.js de l'API Actions, consultez la bibliothèque et la documentation de référence de l'API Actions REST.

Conditions requises

Les exigences suivantes s'appliquent aux requêtes adressées à l'API Actions.

Taille de la charge utile de requête

Les requêtes adressées à l'API Actions ne doivent pas dépasser 10 Mo. Cela inclut les points de terminaison de streaming des clients, où chaque requête dans le flux doit être d'une taille maximale de 10 Mo.

Si votre charge utile dépasse 10 Mo, le serveur du SDK Actions devrait renvoyer une erreur 400.

Bonnes pratiques

Les bonnes pratiques suivantes sont vivement recommandées lorsque vous utilisez l'API Actions.

Définir l'en-tête de requête x-goog-user-project

Lorsque vous créez un outil ou une application pour vos utilisateurs, vous pouvez préférer facturer et utiliser le projet d'un utilisateur pour les limites de quota, plutôt que votre projet client. Pour spécifier un projet à des fins de facturation et de quota, définissez l'en-tête de requête x-goog-user-project.

Valeurs correctes L'ID de projet d'un projet Google Cloud existant
Exemple x-goog-user-project: my-project
Détails Le projet spécifié dans l'en-tête est utilisé pour les limites de quota et facturé pour les frais associés à la requête.

Définir l'en-tête de requête user-agent

Définissez un user-agent approprié à l'aide de l'en-tête de requête user-agent. Cela permet à l'API de déterminer si les requêtes proviennent de partenaires.

Limites connues

Cette section décrit les limites connues de l'API Actions.

Délai d'inactivité pour les points de terminaison de streaming du client

Cette limitation ne s'applique qu'aux requêtes HTTP que vous envoyez aux points de terminaison de streaming des clients. Les requêtes effectuées à l'aide de la bibliothèque cliente ne sont pas concernées par cette limitation.

Si vous utilisez des requêtes HTTP pour appeler WritePreview, CreateVersion ou WriteDraft, nous vous recommandons de mettre en œuvre un délai avant expiration pour gérer les requêtes qui n'aboutissent pas.

Si vous recevez un en-tête de réponse qui spécifie un code d'état autre que 200, votre code doit arrêter le flux après un certain temps. Ce problème n'affecte que les points de terminaison de streaming des clients. Par exemple, l'outil gactions, qui utilise l'API Actions, dispose d'un délai avant expiration de cinq secondes.