Api för creator Long-Running-åtgärd V2
Vissa API:er i Azure Maps använda ett asynkront Request-Reply mönster. Med det här mönstret kan Azure Maps tillhandahålla tjänster med hög tillgänglighet och svarstider. Den här artikeln beskriver Azure Maps specifika implementering av långvarig asynkron bakgrundsbearbetning.
Skicka en förfrågan
Ett klientprogram startar en tidskrävande åtgärd via ett synkront anrop till ett HTTP-API. Normalt är det här anropet i form av en HTTP POST-begäran. När en asynkron arbetsbelastning har skapats returnerar API:et en HTTP-statuskod 202
som anger att begäran har accepterats. Det här svaret innehåller ett Location
huvud som pekar på en slutpunkt som klienten kan avsöka för att kontrollera statusen för den långvariga åtgärden.
Exempel på ett lyckat svar
Status: 202 Accepted
Operation-Location: https://atlas.microsoft.com/service/operations/{operationId}
Om anropet inte godkänns av verifieringen returnerar API:et ett HTTP-svar 400
för en felaktig begäran. Svarstexten ger klienten mer information om varför begäran var ogiltig.
Övervaka åtgärdsstatus
Platsslutpunkten som anges i de godkända svarshuvudena kan avsökas för att kontrollera status för den långvariga åtgärden. Svarstexten från åtgärdsstatusbegäran innehåller status
alltid egenskaperna och created
. Egenskapen status
visar aktuellt tillstånd för den långvariga åtgärden. Möjliga tillstånd är "NotStarted"
, "Running"
, "Succeeded"
och "Failed"
. Egenskapen created
visar den tid då den första begäran gjordes för att starta den långvariga åtgärden. När tillståndet är antingen "NotStarted"
eller "Running"
tillhandahålls även ett Retry-After
huvud med svaret. Huvudet Retry-After
, mätt i sekunder, kan användas för att avgöra när nästa avsökningsanrop till åtgärdsstatus-API:et ska göras.
Exempel på att köra ett statussvar
Status: 200 OK
Retry-After: 30
{
"operationId": "c587574e-add9-4ef7-9788-1635bed9a87e",
"created": "3/11/2020 8:45:13 PM +00:00",
"status": "Running"
}
Slutförande av handtagsåtgärd
När den långvariga åtgärden har slutförts är svarets status antingen "Succeeded"
eller "Failed"
. Alla svar returnerar en HTTP 200 OK-kod. När en ny resurs har skapats från en långvarig åtgärd innehåller svaret också ett Resource-Location
huvud som pekar på metadata om resursen. Vid ett fel har svaret en error
egenskap i brödtexten. Feldata följer OData-felspecifikationen.
Exempel på lyckat svar
Status: 200 OK
Resource-Location: "https://atlas.microsoft.com/tileset/{tileset-id}"
{
"operationId": "c587574e-add9-4ef7-9788-1635bed9a87e",
"created": "2021-05-06T07:55:19.5256829+00:00",
"status": "Succeeded"
}
Exempel på felsvar
Status: 200 OK
{
"operationId": "c587574e-add9-4ef7-9788-1635bed9a87e",
"created": "3/11/2020 8:45:13 PM +00:00",
"status": "Failed",
"error": {
"code": "InvalidFeature",
"message": "The provided feature is invalid.",
"details": {
"code": "NoGeometry",
"message": "No geometry was provided with the feature."
}
}
}