Partager via


InvokeRESTAPI@1 - Appeler une tâche API REST v1

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

Syntaxe

# 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.

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. Obligatoire 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. Obligatoire lorsque connectedServiceNameSelector = connectedServiceNameARM.

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


méthode method -
string. Obligatoire. Valeurs autorisées : OPTIONS, GET, HEAD, POST, PUT, DELETE, 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 attaché à la requête envoyée à l’API.


body - corps
string. Optionnel. Utilisez quand method != GET && method != HEAD.

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


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

Spécifie la chaîne à ajouter à la 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 Completion
string. Obligatoire. Valeurs autorisées : true (rappel), 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 les critères de réussite sont évalués à true.
  • true - rappel: la saisie semi-automatique du service externe effectue un rappel pour mettre à jour l’enregistrement de chronologie.

critères de réussite successCriteria -
string. Optionnel. 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 {"status" : "successful"}de réponse, l’expression peut être eq(root['status'], 'successful'). En savoir plus sur 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.

Remarques

Remarque

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 l’API REST n’effectue pas directement d’actions de déploiement. Au lieu de cela, il 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 Invoke

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

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

Les API de gestion Azure sont appelées à l’aide de 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 de rappel est choisi comme événement d’achèvement ?

Pour signaler l’achèvement, le service externe doit publier les données d’achèvement vers le point de terminaison REST des pipelines suivants.

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

Consultez cette application cmdline simple pour des spécificités.

En outre, une bibliothèque d’assistance C# est disponible pour activer la journalisation dynamique et la gestion de l’état des tâches pour les 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 utilise 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 correspond à notre successCriteria: eq(root[''count''], ''1425'').

Spécifications

Besoin Description
Types de pipelines YAML, Build Classique, Version Classique
Exécutions sur Serveur, ServerGate
demandes Aucun
fonctionnalités de Cette tâche ne répond à aucune demande de tâches ultérieures dans le travail.
restrictions de commande N'importe quel
variables settables N'importe quel
Version de l’agent Toutes les versions de l’agent prises en charge.
Catégorie de tâche Déployer