API действий

API действий предоставляет конечные точки, помогающие создавать, управлять и тестировать ваши действия.

Клиентская библиотека (Node.js)

Хотя вы можете использовать службу RESTful Actions API, отправляя прямые HTTP-запросы к серверу, мы предоставляем клиентскую библиотеку, которая упрощает доступ к конечным точкам из Node.js. Клиентская библиотека Actions API позволяет вам управлять действием и тестировать его с использованием различных конечных точек.

Например, приведенный ниже код вызывает конечную точку writePreview для обновления предварительного просмотра проекта пользователя на основе предоставленной модели:

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

Инструкции по установке и справочные материалы для клиентской библиотеки Actions API Node.js см. в справочной документации по библиотеке и Actions API REST .

Требования

Следующие требования применяются к запросам, сделанным к API действий.

Запросить размер полезной нагрузки

Запросы к Actions API должны иметь размер не более 10 МБ. Сюда входят конечные точки клиентской потоковой передачи, где размер каждого запроса в потоке должен составлять 10 МБ или меньше.

Если ваши полезные данные превышают 10 МБ, вы должны получить ошибку 400 от сервера Actions SDK.

Лучшие практики

При использовании Actions API настоятельно рекомендуется следовать следующим рекомендациям.

Установите заголовок запроса x-goog-user-project.

При создании инструмента или приложения для ваших пользователей вы можете захотеть, чтобы счет выставлялся и использовался в соответствии с квотами за проект пользователя, а не за ваш клиентский проект. Чтобы указать проект для целей выставления счетов и квот, установите заголовок запроса x-goog-user-project .

Допустимые значения Идентификатор проекта для существующего проекта Google Cloud.
Пример x-goog-user-project: my-project
Подробности Проект, указанный в заголовке, используется для ограничений квоты и выставляется счет за расходы, связанные с запросом.

Установите заголовок запроса пользовательского агента

Установите соответствующий пользовательский агент, используя заголовок запроса user-agent . Это помогает API определить, исходят ли запросы от партнеров.

Известные ограничения

В этом разделе описаны известные ограничения API действий.

Тайм-аут для конечных точек клиентской потоковой передачи

Это ограничение применяется только к HTTP-запросам, которые вы отправляете к конечным точкам потоковой передачи клиента. Это ограничение не влияет на запросы, сделанные с использованием клиентской библиотеки .

Если вы используете HTTP-запросы для вызова WritePreview , CreateVersion или WriteDraft , мы рекомендуем вам реализовать тайм-аут для обработки неуспешных запросов.

Если вы получаете заголовок ответа, в котором указан код состояния, отличный от 200 , ваш код должен завершить поток через определенный период времени. Эта проблема затрагивает только конечные точки клиентской потоковой передачи. Например, инструмент gactions , использующий Actions API, имеет тайм-аут 5 секунд.