Oluşturucu Long-Running İşlem API'si V2

Azure Haritalar'deki bazı API'ler Zaman Uyumsuz Request-Reply deseni kullanır. Bu düzen, Azure Haritalar yüksek oranda kullanılabilir ve hızlı yanıt veren hizmetler sunmasını sağlar. Bu makalede Azure Map'in uzun süre çalışan zaman uyumsuz arka plan işleme uygulaması açıklanmaktadır.

İstek gönderin

İstemci uygulaması, HTTP API'sine zaman uyumlu bir çağrı aracılığıyla uzun süre çalışan bir işlem başlatır. Genellikle, bu çağrı bir HTTP POST isteği biçimindedir. Zaman uyumsuz bir iş yükü başarıyla oluşturulduğunda, API isteğin kabul edildiğini belirten bir HTTP 202 durum kodu döndürür. Bu yanıt, istemcinin uzun süre çalışan işlemin durumunu denetlemek için yoklayabileceği bir uç noktaya işaret eden bir üst bilgi içerir Location .

Başarılı yanıtı örneği

Status: 202 Accepted
Operation-Location: https://atlas.microsoft.com/service/operations/{operationId} 

Çağrı doğrulamayı geçmezse API, Hatalı İstek için bir HTTP 400 yanıtı döndürür. Yanıt gövdesi, istemciye isteğin neden geçersiz olduğu hakkında daha fazla bilgi sağlar.

İşlem durumunu izleme

Kabul edilen yanıt üst bilgilerinde sağlanan konum uç noktası, uzun süre çalışan işlemin durumunu denetlemek için yoklanabilir. İşlem durumu isteğinden gelen yanıt gövdesi her zaman ve created özelliklerini içerirstatus. status özelliği, uzun süre çalışan işlemin geçerli durumunu gösterir. Olası durumlar arasında "NotStarted", "Running", "Succeeded"ve "Failed"bulunur. özelliği, created uzun süre çalışan işlemi başlatmak için ilk isteğin yapıldığı saati gösterir. Durum veya "Running"olduğunda"NotStarted", yanıtla birlikte bir Retry-After üst bilgi de sağlanır. Saniye Retry-After cinsinden ölçülen üst bilgi, işlem durumu API'sine bir sonraki yoklama çağrısının ne zaman yapılması gerektiğini belirlemek için kullanılabilir.

Durum yanıtı çalıştırma örneği

Status: 200 OK
Retry-After: 30
{
    "operationId": "c587574e-add9-4ef7-9788-1635bed9a87e",
    "created": "3/11/2020 8:45:13 PM +00:00",
    "status": "Running"
}

İşlemin tamamlanmasını işleme

Uzun süre çalışan işlem tamamlandıktan sonra yanıtın durumu veya "Succeeded""Failed"şeklindedir. Tüm yanıtlar bir HTTP 200 Ok kodu döndürür. Uzun süre çalışan bir işlemden yeni bir kaynak oluşturulduğunda yanıt, kaynak hakkındaki meta verileri işaret eden bir Resource-Location üst bilgi de içerir. Bir hata durumunda yanıtın gövdesinde bir error özelliği vardır. Hata verileri OData hata belirtimine bağlıdır.

Başarı yanıtı örneği

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

Hata yanıtı örneği

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