Interfejs API operacji Long-Running twórcy w wersji 2
Niektóre interfejsy API w Azure Maps używają asynchronicznego wzorca Request-Reply. Ten wzorzec umożliwia Azure Maps zapewnienie wysokiej dostępności i dynamicznych usług. W tym artykule opisano konkretną implementację usługi Azure Map długotrwałego przetwarzania asynchronicznego w tle.
Prześlij żądanie
Aplikacja kliencka uruchamia długotrwałą operację za pośrednictwem synchronicznego wywołania interfejsu API HTTP. Zazwyczaj to wywołanie jest w postaci żądania HTTP POST. Po pomyślnym utworzeniu obciążenia asynchronicznego interfejs API zwraca kod stanu HTTP 202
wskazujący, że żądanie zostało zaakceptowane. Ta odpowiedź zawiera nagłówek wskazujący Location
punkt końcowy, który klient może sondować, aby sprawdzić stan długotrwałej operacji.
Przykład odpowiedzi na powodzenie
Status: 202 Accepted
Operation-Location: https://atlas.microsoft.com/service/operations/{operationId}
Jeśli wywołanie nie przejdzie walidacji, interfejs API zwróci odpowiedź HTTP 400
dla nieprawidłowego żądania. Treść odpowiedzi zawiera więcej informacji o tym, dlaczego żądanie było nieprawidłowe.
Monitorowanie stanu operacji
Punkt końcowy lokalizacji podany w akceptowanych nagłówkach odpowiedzi można sondować, aby sprawdzić stan długotrwałej operacji. Treść odpowiedzi z żądania stanu operacji zawsze zawiera status
właściwości i created
. Właściwość status
pokazuje bieżący stan długotrwałej operacji. Możliwe stany obejmują "NotStarted"
, , "Succeeded"
"Running"
i "Failed"
. Właściwość created
pokazuje czas wykonania początkowego żądania, aby rozpocząć długotrwałą operację. Gdy stan to "NotStarted"
lub "Running"
, Retry-After
nagłówek jest również dostarczany z odpowiedzią. Nagłówek Retry-After
mierzony w sekundach może służyć do określenia, kiedy powinno zostać wykonane następne wywołanie sondowania do interfejsu API stanu operacji.
Przykład uruchamiania odpowiedzi o stanie
Status: 200 OK
Retry-After: 30
{
"operationId": "c587574e-add9-4ef7-9788-1635bed9a87e",
"created": "3/11/2020 8:45:13 PM +00:00",
"status": "Running"
}
Obsługa ukończenia operacji
Po zakończeniu długotrwałej operacji stan odpowiedzi to "Succeeded"
lub "Failed"
. Wszystkie odpowiedzi zwracają kod HTTP 200 OK. Po utworzeniu nowego zasobu na podstawie długotrwałej operacji odpowiedź zawiera Resource-Location
również nagłówek wskazujący metadane dotyczące zasobu. Po awarii odpowiedź ma error
właściwość w treści. Dane o błędach są zgodne ze specyfikacją błędu OData.
Przykład odpowiedzi na powodzenie
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"
}
Przykład odpowiedzi na błędy
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."
}
}
}
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla