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