Interfejs Actions

Actions API udostępnia punkty końcowe ułatwiające kompilowanie akcji, zarządzanie nią i jej testowanie.

Biblioteka klienta (Node.js)

Możesz korzystać z usługi Actions API typu RESTful, kierując żądania HTTP do serwera, ale udostępniamy bibliotekę klienta, która ułatwia dostęp do punktów końcowych z poziomu Node.js. Biblioteka klienta interfejsu Actions API umożliwia zarządzanie akcją i testowanie jej za pomocą różnych punktów końcowych.

Na przykład ten kod wywołuje punkt końcowy writePreview, aby na podstawie podanego modelu zaktualizować podgląd projektu użytkownika:

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

Instrukcje instalacji i materiały referencyjne dotyczące biblioteki klienta interfejsu Actions API Node.js znajdziesz w bibliotece i dokumentacji interfejsu Actions API typu REST.

Wymagania

W przypadku żądań wysyłanych do interfejsu Actions API obowiązują te wymagania.

Rozmiar ładunku żądania

Żądania wysyłane do interfejsu Actions API mogą mieć maksymalnie 10 MB. Dotyczy to też punktów końcowych strumieniowego przesyłania danych klienta, gdzie każde żądanie w strumieniu nie może przekraczać 10 MB.

Jeśli ładunek przekracza 10 MB, serwer Actions SDK powinien zgłosić błąd 400.

Sprawdzone metody

Jeśli korzystasz z interfejsu Actions API, zdecydowanie zalecamy użycie tych sprawdzonych metod.

Ustaw nagłówek żądania x-goog-user-project

Gdy tworzysz narzędzie lub aplikację dla użytkowników, wolisz, aby projekt użytkownika był rozliczany i wykorzystywany do obsługi limitów przydziału, a nie projekt kliencki. Aby określić projekt na potrzeby rozliczeń i limitów, ustaw nagłówek żądania x-goog-user-project.

Prawidłowe wartości Identyfikator istniejącego projektu Google Cloud
Przykład x-goog-user-project: my-project
Szczegóły Projekt określony w nagłówku jest używany do limitów limitów i jest rozliczany na podstawie opłat związanych z żądaniem.

Ustaw nagłówek żądania klienta użytkownika

Ustaw odpowiedniego klienta użytkownika za pomocą nagłówka żądania user-agent. Pomaga to interfejsowi API określić, czy żądania pochodzą od partnerów.

Znane ograniczenia

W tej sekcji opisujemy znane ograniczenia interfejsu Actions API.

Czas oczekiwania dla punktów końcowych strumieniowania klienta

To ograniczenie dotyczy tylko żądań HTTP wysyłanych do punktów końcowych strumieniowania klienta. To ograniczenie nie ma wpływu na żądania przesłane za pomocą biblioteki klienta.

Jeśli do wywoływania WritePreview, CreateVersion lub WriteDraft używasz żądań HTTP, zalecamy zaimplementowanie limitu czasu w celu obsługi żądań, które nie zakończyły się powodzeniem.

Jeśli otrzymasz nagłówek odpowiedzi z kodem stanu innym niż 200, Twój kod powinien zakończyć strumieniowanie po określonym czasie. Ten problem dotyczy tylko punktów końcowych strumieniowania klienta. Na przykład narzędzie gactions, które korzysta z interfejsu Actions API, ma limit czasu wynoszący 5 sekund.