API Actions

A API Actions oferece endpoints para criar, gerenciar e testar a ação.

Biblioteca de cliente (Node.js)

Embora seja possível usar o serviço RESTful da API Actions fazendo solicitações HTTP diretas ao servidor, fornecemos uma biblioteca de cliente que facilita o acesso aos endpoints do Node.js. A biblioteca de cliente da API Actions permite gerenciar e testar a ação usando vários endpoints.

Por exemplo, o código abaixo faz uma chamada para o endpoint writePreview para atualizar a visualização do projeto de um usuário com base no modelo fornecido:

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

Confira instruções de instalação e material de referência da biblioteca de cliente Node.js da API Actions na documentação da biblioteca e da referência REST da API Actions.

Requisitos

Os requisitos a seguir se aplicam às solicitações feitas à API Actions.

Tamanho do payload da solicitação

As solicitações feitas à API Actions precisam ter até 10 MB. Isso inclui endpoints de streaming de cliente, em que cada solicitação no stream precisa ter até 10 MB.

Se o payload exceder 10 MB, você receberá um erro 400 do servidor do SDK do Actions.

Práticas recomendadas

As práticas abaixo são altamente recomendadas ao usar a API Actions.

Definir o cabeçalho de solicitação x-goog-user-project

Ao criar uma ferramenta ou aplicativo para seus usuários, você pode querer que o projeto de um usuário seja cobrado e usado para limites de cota, em vez de seu projeto do cliente. Para especificar um projeto para fins de faturamento e cota, defina o cabeçalho da solicitação x-goog-user-project.

Valid Values O ID do projeto de um projeto atual do Google Cloud
Exemplo x-goog-user-project: my-project
Detalhes O projeto especificado no cabeçalho é usado para limites de cota e faturado pelas cobranças associadas à solicitação.

Definir o cabeçalho de solicitação do user agent

Defina um user agent adequado usando o cabeçalho da solicitação user-agent. Isso ajuda a API a determinar se as solicitações são de parceiros.

Limitações conhecidas

Esta seção descreve as limitações conhecidas da API Actions.

Tempo limite dos endpoints de streaming do cliente

Essa limitação se aplica apenas a solicitações HTTP feitas para endpoints de streaming do cliente. As solicitações feitas usando a biblioteca de cliente não são afetadas por essa limitação.

Se você estiver usando solicitações HTTP para chamar WritePreview, CreateVersion ou WriteDraft, recomendamos implementar um tempo limite para lidar com as solicitações que não são bem-sucedidas.

Se você receber um cabeçalho de resposta que especifica um código de status diferente de 200, seu código precisará encerrar o stream após um determinado período. Esse problema afeta apenas os endpoints de streaming do cliente. Por exemplo, a ferramenta gactions, que usa a API Actions, tem um tempo limite de cinco segundos.