InvokeRESTAPI@1 – Anropa REST API v1-uppgift
Använd den här uppgiften för att anropa ett REST API som en del av din 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.
Ingångar
connectionType
-
Anslutningstyp
Indataalias: connectedServiceNameSelector
.
string
. Obligatoriskt. Tillåtna värden: connectedServiceName
(allmänt), connectedServiceNameARM
(Azure Resource Manager). Standardvärde: connectedServiceName
.
Anger vilken tjänstanslutningstyp som ska användas för att anropa REST-API:et. Välj Azure Resource Manager- för att anropa ett Azure-hanterings-API eller allmän för alla andra API:er.
serviceConnection
-
Allmän tjänstanslutning
Indataalias: connectedServiceName | genericService
.
string
. Krävs när connectedServiceNameSelector = connectedServiceName
.
Anger den allmänna tjänstanslutningen som tillhandahåller baseUrl för anropet och den auktorisering som ska användas för uppgiften.
azureServiceConnection
-
Azure-prenumeration
Indataalias: connectedServiceNameARM | azureSubscription
.
string
. Krävs när connectedServiceNameSelector = connectedServiceNameARM
.
Anger den Azure Resource Manager-prenumeration som ska konfigureras och användas för att anropa Azure-hanterings-API:er.
method
-
metod
string
. Obligatoriskt. Tillåtna värden: OPTIONS
, GET
, HEAD
, POST
, PUT
, DELETE
, TRACE
, PATCH
. Standardvärde: POST
.
Anger DEN HTTP-metod som anropar API:et.
headers
-
rubriker
string
. Standardvärde: {\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}
.
Definierar rubriken i JSON-format. Huvudet bifogas med begäran som skickas till API:et.
body
-
brödtext
string
. Valfritt. Använd när method != GET && method != HEAD
.
Anger begärandetexten för funktionsanropet i JSON-format.
urlSuffix
-
URL-suffix och parametrar
string
.
Anger strängen som ska läggas till i baseUrl från den allmänna tjänstanslutningen när HTTP-anropet upprättas.
Exempel: Om url:en för tjänstanslutningen är https:...TestProj/_apis/Release/releases
och URL-suffixet är /2/environments/1
blir url:en för tjänstanslutningen https:.../TestProj/_apis/Release/releases/2/environments/1
. Om URL-suffixet är ?definitionId=1&releaseCount=1
blir url:en för tjänstanslutningen https//...TestProj/_apis/Release/releases?definitionId=1&releaseCount=1
.
waitForCompletion
-
slutförandehändelse
string
. Obligatoriskt. Tillåtna värden: true
(återanrop), false
(ApiResponse). Standardvärde: false
.
Anger hur uppgiften rapporterar slutförande. De tillåtna värdena är:
-
false
- API-svar: rapporter slutförs när funktionen returnerar framgång inom 20 sekunder och framgångskriterierna utvärderas till true. -
true
- Återanrop: rapporter slutförs när den externa tjänsten gör ett återanrop för att uppdatera tidslinjeposten.
successCriteria
-
Framgångskriterier
string
. Valfritt. Använd när waitForCompletion = false
.
Anger uppgiftens villkor för att lyckas. Svarsinnehållet påverkar inte resultatet om inga villkor har definierats. Som standard skickas aktiviteten när anropet returnerar 200 OK
.
Exempel: För svar {"status" : "successful"}
kan uttrycket vara eq(root['status'], 'successful')
. Läs mer om att ange villkor.
Kontrollalternativ för aktivitet
Alla aktiviteter har kontrollalternativ utöver sina aktivitetsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.
Utdatavariabler
Ingen.
Anmärkningar
Anmärkning
Den här uppgiften kan endast användas i ett agentlöst jobb.
Lyckas om API:et returnerar framgång och svarstextparseringen lyckas, eller när API:et uppdaterar tidslinjeposten med framgång.
Anropa REST API-uppgift inte utför distributionsåtgärder direkt. I stället kan du anropa alla generiska HTTP REST API som en del av den automatiserade pipelinen och eventuellt vänta tills det har slutförts.
Mer information om hur du använder den här uppgiften finns i Översikt över godkännanden och grindar.
Vilka grundläggande URL:er används vid anrop av Azure Management-API:er?
Azure-hanterings-API:er anropas med hjälp av ResourceManagerEndpoint för den valda miljön. Till exempel används https://management.azure.com
när prenumerationen finns i en AzureCloud- miljö.
Var ska en aktivitetssignal slutföras när Återanrop väljs som slutförandehändelse?
För att signalera slutförande bör den externa tjänsten POST-slutförandedata till följande REST-slutpunkt för pipelines.
{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" }
Mer information finns i det här enkla cmdline-programmet.
Dessutom finns ett C#-hjälpbibliotek tillgängligt för att aktivera liveloggning och hantering av aktivitetsstatus för agentlösa uppgifter. Läs mer
Kan jag använda svarstexten som indata för en annan uppgift?
Nej, eftersom den här uppgiften är en agentlös uppgift och använder TFS interna HttpRequest, som inte returnerar innehållet i HTTP-begäran.
Exempel
steps:
- task: InvokeRESTAPI@1
displayName: 'Invoke REST API: GET'
inputs:
serviceConnection: 'generic_demo'
method: GET
successCriteria: 'eq(root[''count''], ''1425'')'
I det här exemplet lyckas uppgiften när svaret matchade vårt successCriteria
: eq(root[''count''], ''1425'').
Krav
Krav | Beskrivning |
---|---|
Pipelinetyper | YAML, klassisk version, klassisk version |
Körs på | Server, ServerGate |
kräver | Ingen |
funktioner | Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet. |
Kommandobegränsningar | Vilken som helst |
variabler som kan | Vilken som helst |
Agentversion | Alla agentversioner som stöds. |
Aktivitetskategori | Gruppera |