Partage via


InvokeRESTAPI@1 - Appeler la tâche DE l’API REST v1

Utilisez cette tâche pour appeler une API REST dans le cadre de votre pipeline.

Syntax

# 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.
# 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. Required when connectedServiceNameSelector = connectedServiceName. Generic service connection. 
    #azureServiceConnection: # string. Alias: connectedServiceNameARM. 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.

Entrées

connectionType - Type de connexion
Alias d’entrée : connectedServiceNameSelector. string. Obligatoire. Valeurs autorisées : connectedServiceName (Générique), connectedServiceNameARM (Azure Resource Manager). Valeur par défaut : connectedServiceName.

Spécifie le type de connexion de service à utiliser pour appeler l’API REST. Sélectionnez Azure Resource Manager pour appeler une API de gestion Azure ou Générique pour toutes les autres API.


serviceConnection - Connexion de service générique
Alias d’entrée : connectedServiceName | genericService. string. Nécessaire lorsque connectedServiceNameSelector = connectedServiceName.

Spécifie la connexion de service générique qui fournit la baseUrl pour l’appel et l’autorisation à utiliser pour la tâche.


serviceConnection - Connexion de service générique
Alias d’entrée : connectedServiceName. string. Nécessaire lorsque connectedServiceNameSelector = connectedServiceName.

Spécifie la connexion de service générique qui fournit la baseUrl pour l’appel et l’autorisation à utiliser pour la tâche.


azureServiceConnection - Abonnement Azure
Alias d’entrée : connectedServiceNameARM | azureSubscription. string. Nécessaire lorsque connectedServiceNameSelector = connectedServiceNameARM.

Spécifie l’abonnement Azure Resource Manager à configurer et à utiliser pour appeler les API de gestion Azure.


azureServiceConnection - Abonnement Azure
Alias d’entrée : connectedServiceNameARM. string. Nécessaire lorsque connectedServiceNameSelector = connectedServiceNameARM.

Spécifie l’abonnement Azure Resource Manager à configurer et à utiliser pour appeler les API de gestion Azure.


method - Méthode
string. Obligatoire. Valeurs autorisées : OPTIONS, GET, HEAD, POST, DELETEPUT, , TRACE. PATCH Valeur par défaut : POST.

Spécifie la méthode HTTP qui appelle l’API.


headers - En-têtes
string. Valeur par défaut : {\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}.

Définit l’en-tête au format JSON. L’en-tête est joint avec la requête envoyée à l’API.


body - Corps
string. facultatif. Utilisez quand method != GET && method != HEAD.

Spécifie le corps de la demande pour l’appel de fonction au format JSON.


urlSuffix - Suffixe et paramètres d’URL
string.

Spécifie la chaîne à ajouter à baseUrl à partir de la connexion de service générique lors de l’appel HTTP.

Exemple : si l’URL de connexion de service est https:...TestProj/_apis/Release/releases et que le suffixe d’URL est /2/environments/1, l’URL de connexion de service devient https:.../TestProj/_apis/Release/releases/2/environments/1. Si le suffixe d’URL est ?definitionId=1&releaseCount=1, l’URL de connexion de service devient https//...TestProj/_apis/Release/releases?definitionId=1&releaseCount=1.


waitForCompletion - Événement d’achèvement
string. Obligatoire. Valeurs autorisées : true (Callback), false (ApiResponse). Valeur par défaut : false.

Spécifie la façon dont la tâche signale l’achèvement. Les valeurs autorisées sont les suivantes :

  • false - Réponse de l’API : signale l’achèvement lorsque la fonction retourne la réussite dans les 20 secondes et que les critères de réussite sont évalués à true.
  • true - Rappel : signale l’achèvement lorsque le service externe effectue un rappel pour mettre à jour l’enregistrement chronologie.

successCriteria - Critères de réussite
string. facultatif. Utilisez quand waitForCompletion = false.

Spécifie les critères de réussite de la tâche. Le contenu de la réponse n’influence pas le résultat si aucun critère n’est défini. Par défaut, la tâche passe lorsque l’appel retourne 200 OK.

Exemple : Pour la réponse {"status" : "successful"}, l’expression peut être eq(root['status'], 'successful'). En savoir plus sur la spécification de conditions.


Options de contrôle de la tâche

Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâches. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.

Variables de sortie

Aucun.

Notes

Notes

Cette tâche ne peut être utilisée que dans un travail sans agent.

Réussit si l’API retourne la réussite et que l’analyse du corps de la réponse réussit, ou lorsque l’API met à jour l’enregistrement de chronologie avec succès.

La tâche Appeler une API REST n’effectue pas d’actions de déploiement directement. Au lieu de cela, elle vous permet d’appeler n’importe quelle API REST HTTP générique dans le cadre du pipeline automatisé et, éventuellement, d’attendre qu’elle soit terminée.

Configuration d’une tâche d’API REST d’appel

Pour plus d’informations sur l’utilisation de cette tâche, consultez Vue d’ensemble des approbations et des portes.

Quelles sont les URL de base utilisées lors de l’appel des API de gestion Azure ?

Les API de gestion Azure sont appelées à l’aide du ResourceManagerEndpoint de l’environnement sélectionné. Par exemple https://management.azure.com , est utilisé lorsque l’abonnement se trouve dans un environnement AzureCloud .

Où une tâche doit-elle signaler l’achèvement lorsque Rappel est choisi comme événement d’achèvement ?

Pour signaler l’achèvement, le service externe doit publier (POST) les données d’achèvement sur le point de terminaison REST du pipeline suivant.

{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" }

Pour plus d’informations, consultez cette application en ligne de commande simple.

En outre, une bibliothèque d’assistance C# est disponible pour activer la journalisation dynamique et gérer l’état des tâches sans agent. En savoir plus

Puis-je utiliser le corps de la réponse comme entrée pour une autre tâche ?

Non, car cette tâche est une tâche sans agent, et elle utilise la requête HttpRequest interne de TFS, qui ne retourne pas le contenu de la requête HTTP.

Exemple

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

Dans cet exemple, la tâche réussit lorsque la réponse correspondait à notre successCriteria: eq(root[''count''], ''1425''') .

Configuration requise

Condition requise Description
Types de pipelines YAML, build classique, version classique
S’exécute sur Serveur, ServerGate
Demandes None
Capabilities Cette tâche ne répond à aucune demande pour les tâches suivantes dans le travail.
Restrictions de commandes Quelconque
Variables settables Quelconque
Version de l’agent Toutes les versions d’agent prises en charge.
Catégorie de la tâche Déployer