Algunos métodos de la API de Dialogflow muestran una operación de larga duración. Estos métodos son asíncronos, y es posible que la operación no se complete cuando el método muestra una respuesta. Puedes verificar el estado o cancelar las operaciones.
Obtén un estado de operación
A continuación, se muestra cómo sondear el estado de una operación. Si tienes que verificar muchas operaciones, debes colocar un límite de frecuencia en las llamadas o usar el método list en su lugar.
Llama al método get
para el tipo Operations
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: Es el ID del proyecto de GCP.
- OPERATION_ID: Es el ID de operación.
- API_VERSION: Ya sea
v2
ov2beta1
.
Método HTTP y URL:
GET https://dialogflow.googleapis.com/API_VERSION /projects/my-gcp-project /operations/OPERATION_ID
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project:PROJECT_ID " \
"https://dialogflow.googleapis.com/API_VERSION /projects/my-gcp-project /operations/OPERATION_ID "
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID " }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://dialogflow.googleapis.com/API_VERSION /projects/my-gcp-project /operations/OPERATION_ID " | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/PROJECT_ID /operations/some-operation-name-OPERATION_ID ", "metadata": { "@type": "type.googleapis.com/google.cloud.dialogflow.API_VERSION .SomeOperationType", "state": "DONE" }, "done": true, ... }
Cuando se completa la operación, se muestra un valor state
de SUCCESSFUL
.
Enumera y cancela operaciones
Además de obtener una operación específica, puedes enumerar y cancelar operaciones.
Consulta los métodos list
y cancel
para el tipo Operations
.
Los resultados de list
pueden contener operaciones que no están relacionadas con tu tarea actual, así que asegúrate de filtrar los resultados.