Compartir a través de


InvokeRESTAPI@1 - Invocar la tarea de la API de REST v1

Use esta tarea para invocar una API de REST como parte de la canalización.

Sintaxis

# Invoke REST API v1
# Invoke a REST API as a part of your pipeline.
- task: InvokeRESTAPI@1
  inputs:
    connectionType: 'connectedServiceName' # 'connectedServiceName' | 'connectedServiceNameARM'. Alias: connectedServiceNameSelector. Required. Connection type. Default: connectedServiceName.
    serviceConnection: # string. Alias: connectedServiceName | genericService. Required when connectedServiceNameSelector = connectedServiceName. Generic service connection. 
    #azureServiceConnection: # string. Alias: connectedServiceNameARM | azureSubscription. Required when connectedServiceNameSelector = connectedServiceNameARM. Azure subscription. 
    method: 'POST' # 'OPTIONS' | 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'TRACE' | 'PATCH'. Required. Method. Default: POST.
    #headers: # string. Headers. 
    #body: # string. Optional. Use when method != GET && method != HEAD. Body. 
    #urlSuffix: # string. URL suffix and parameters. 
  # Advanced
    waitForCompletion: 'false' # 'true' | 'false'. Required. Completion event. Default: false.
    #successCriteria: # string. Optional. Use when waitForCompletion = false. Success criteria.

Entradas

connectionType - tipo de conexión
Alias de entrada: connectedServiceNameSelector. string. Obligatorio. Valores permitidos: connectedServiceName (Genérico), connectedServiceNameARM (Azure Resource Manager). Valor predeterminado: connectedServiceName.

Especifica el tipo de conexión de servicio que se va a utilizar para invocar la API de REST. Seleccione Azure Resource Manager para invocar una API de administración de Azure o Genérico para todas las demás API.


serviceConnection - Conexión de servicio genérica
Alias de entrada: connectedServiceName | genericService. string. Obligatorio cuando connectedServiceNameSelector = connectedServiceName.

Especifica la conexión de servicio genérica que proporciona baseUrl para la llamada y la autorización que se va a usar para la tarea.


azureServiceConnection - de suscripción de Azure
Alias de entrada: connectedServiceNameARM | azureSubscription. string. Obligatorio cuando connectedServiceNameSelector = connectedServiceNameARM.

Especifica la suscripción de Azure Resource Manager que se va a configurar y usar para invocar las API de administración de Azure.


del método method -
string. Obligatorio. Valores permitidos: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, PATCH. Valor predeterminado: POST.

Especifica el método HTTP que invoca la API.


headers - encabezados
string. Valor predeterminado: {\n"Content-Type":"application/json", \n"PlanUrl": "$(system.CollectionUri)", \n"ProjectId": "$(system.TeamProjectId)", \n"HubName": "$(system.HostType)", \n"PlanId": "$(system.PlanId)", \n"JobId": "$(system.JobId)", \n"TimelineId": "$(system.TimelineId)", \n"TaskInstanceId": "$(system.TaskInstanceId)", \n"AuthToken": "$(system.AccessToken)"\n}.

Define el encabezado en formato JSON. El encabezado se adjunta con la solicitud enviada a la API.


cuerpo de body -
string. Opcional. Use cuando method != GET && method != HEAD.

Especifica el cuerpo de la solicitud para la llamada a la función en formato JSON.


urlSuffix - Sufijo y parámetros de URL
string.

Especifica la cadena que se va a anexar a baseUrl desde la conexión de servicio genérico al realizar la llamada HTTP.

Ejemplo: Si la URL de conexión de servicio es https:...TestProj/_apis/Release/releases y el sufijo de URL es /2/environments/1, la URL de conexión de servicio se convierte en https:.../TestProj/_apis/Release/releases/2/environments/1. Si el sufijo de la URL es ?definitionId=1&releaseCount=1, la URL de la conexión del servicio se convierte en https//...TestProj/_apis/Release/releases?definitionId=1&releaseCount=1.


de eventos de finalización de waitForCompletion -
string. Obligatorio. Valores permitidos: true (devolución de llamada), false (ApiResponse). Valor predeterminado: false.

Especifica cómo la tarea notifica su finalización. Los valores permitidos son:

  • false - Respuesta de la API: informa de la finalización cuando la función devuelve el resultado correcto en un plazo de 20 segundos y el criterio de éxito se evalúa como verdadero.
  • true - Devolución de llamada: informa de la finalización cuando el servicio externo realiza una devolución de llamada para actualizar el registro de la línea de tiempo.

successCriteria - criterios de éxito
string. Opcional. Use cuando waitForCompletion = false.

Especifica los criterios de éxito de la tarea. El contenido de la respuesta no influye en el resultado si no se define ningún criterio. De forma predeterminada, la tarea pasa cuando se devuelve 200 OKla llamada .

Ejemplo: para la {"status" : "successful"}de respuesta, la expresión puede ser eq(root['status'], 'successful'). Obtenga más información sobre cómo especificar condiciones.


Opciones de control de tareas

Todas las tareas tienen opciones de control además de sus entradas de tarea. Para obtener más información, consulte Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Observaciones

Nota:

Esta tarea solo se puede utilizar en un trabajo sin agente.

Se realiza correctamente si la API devuelve correctamente y el análisis del cuerpo de la respuesta se realiza correctamente, o cuando la API actualiza el registro de la escala de tiempo con éxito.

La tarea Invocar API de REST no realiza acciones de implementación directamente. En su lugar, le permite invocar cualquier API REST HTTP genérica como parte de la canalización automatizada y, opcionalmente, esperar a que se complete.

Configuración de una tarea de invocación de API de REST

Para obtener más información sobre el uso de esta tarea, consulte Introducción a las aprobaciones y puertas.

¿Qué direcciones URL base se usan al invocar las API de administración de Azure?

Las API de administración de Azure se invocan mediante ResourceManagerEndpoint del entorno seleccionado. Por ejemplo, https://management.azure.com se usa cuando la suscripción se encuentra en un entorno de AzureCloud .

¿Dónde debe elegirse la finalización de una señal de tarea al devolución de llamada como evento de finalización?

Para indicar la finalización, el servicio externo debe publicar los datos de finalización en el siguiente punto de conexión REST de canalizaciones.

{planUri}/{projectId}/_apis/distributedtask/hubs/{hubName}/plans/{planId}/events?api-version=2.0-preview.1

**Request Body**
 { "name": "TaskCompleted", "taskId": "taskInstanceId", "jobId": "jobId", "result": "succeeded" }

Consulte esta sencilla de aplicación cmdline para obtener información específica.

Además, hay disponible una biblioteca auxiliar de C# para habilitar el registro en directo y administrar el estado de la tarea para las tareas sin agente. Aprende más

¿Puedo usar el cuerpo de la respuesta como entrada para otra tarea?

No, ya que esta tarea es una tarea sin agente y usa el HttpRequest interno de TFS, que no devuelve el contenido de la solicitud HTTP.

Ejemplo

steps:
- task: InvokeRESTAPI@1
  displayName: 'Invoke REST API: GET'
  inputs:
    serviceConnection: 'generic_demo'
    method: GET
    successCriteria: 'eq(root[''count''], ''1425'')'

En este ejemplo, la tarea tiene éxito cuando la respuesta coincide con nuestro successCriteria: eq(root[''count''], ''1425'').

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica, versión clásica
Se ejecuta en Servidor, ServerGate
demandas Ninguno
Capacidades Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
restricciones de comandos Cualquiera
variables settable Cualquiera
Versión del agente Todas las versiones de agente admitidas.
Categoría de tarea Desplegar