Поделиться через


Проверка состояния задания анализа

URL-адрес возвращается как часть заголовка Location в ответ на запрос к API-интерфейсу analyze. Он должен использоваться для запроса через HTTP GET для состояния задания анализа. Когда задание анализа будет завершено, тело ответа будет включать URL-адрес или список URL-адресов, по которым можно загрузить выходные результаты. Продолжайте вызывать этот URI, пока не будет возвращен код состояния HTTP 200. Пока задание все еще выполняется, код состояния HTTP 202 будет возвращен с заголовком Location, содержащим тот же URI-адрес, который был возвращен из задания analyze. Как только ответ 200 возвращается, свойство resultFileUris будет включать в себя одно расположение или список доступных расположений для загрузки выходных данных, которые содержатся в ZIP-файле. Файл в формате Формат обмена результатами статического анализа (SARIF) версии V2 включен в эту загрузку ZIP-файла, который является файлом в формате JSON, содержащим результаты анализа. Тело ответа будет содержать объект IssueSummary, который содержит сводную информацию о количестве найденных проблем.

Заметка

Рекомендуется подождать от 15 до 60 секунд между проверками состояния. Анализ обычно занимает от 1 до 5 минут.
Для этого API-интерфейса требуется токен OAuth, который должен быть токеном того же клиентского приложения, которое инициировало задание анализа.

Заголовки

Имя (название) Тип Ожидаемое значение Обязательное?
Авторизация string Токен носителя OAuth 1 с утверждением ИД приложения Microsoft Entra. да
x-ms-tenant-id GUID Идентификатор клиента для приложения. да
x-ms-correlation-id GUID Идентификатор для выполнения анализа. Вы должны предоставить этот же идентификатор для всего выполнения (отправка, анализ, статус) да

Ожидаемые ответы

Код состояния HTTP Сценарий Результат
200 Один или несколько результатов были найдены См. пример ниже. Один результат будет возвращен.
202 В обработке См. пример ниже. Один результат будет возвращен.
403 Запрещено Запрашивающая сторона не совпадает с отправителем запроса на анализ.
404 Не найдено Не удалось найти запрос на анализ по ссылке, указанной в URL-адресе.

Ожидаемые заголовки ответа

Имя (название) Тип Ожидаемое значение Обязательное?
Местоположение uri URI-адрес для использования при запросе текущего статуса и для получения результатов да

Ожидаемый текст ответа

В следующей таблице представлена структура ответа на каждый запрос (только ответ HTTP 200 или 202).

Свойство Тип Ожидаемое значение Обязательное?
privacyPolicy string URI-адрес политики конфиденциальности. Да
Ход выполнения целое Значение завершения в диапазоне от 0 до 100 процентов, где 10 означает, что обработка завершена приблизительно на 10%. Да
runCorrelationId GUID Идентификатор запроса, который включен в каждый запрос. Это может быть использовано для сопоставления с запросом, если это необходимо. Да
статус string InProgress возвращается, когда задание еще обрабатывается. Failed возвращается, когда возникла катастрофическая проблема при обработке задания на сервере. В свойстве ошибки должно быть больше деталей. Finished возвращается после успешного завершения задания без проблем. FinishedWithErrors возвращается после успешного завершения задания, однако одно или несколько правил не могут быть выполнены без ошибок. Это просто сигнал для вас, чтобы вы знали, что отчет может быть неполным. Microsoft знает об этих проблемах обработки на сервере и будет работать над диагностикой и устранением проблем. Да
resultFileUris массив строк Список URI-адресов, которые допускают прямую загрузку выходных данных. Должно быть по одному на файл, который был включен в исходный вызов API-интерфейса анализа. Нет. Это включается только после завершения обработки.
issueSummary IssueSummary Свойства, перечисленные ниже Нет. Это включается только после завершения обработки.
issueSummary.criticalIssueCount целое Количество выявленных проблем, имеющих критическую важность в результате Да
issueSummary.highIssueCount целое Количество выявленных проблем, имеющих высокую важность в результате Да
issueSummary.mediumIssueCount целое Количество выявленных проблем, имеющих среднюю важность в результате Да
issueSummary.lowIssueCount целое Количество выявленных проблем, имеющих низкую важность в результате Да
issueSummary.informationalIssueCount целое Количество выявленных проблем, имеющих информационную важность в результате Да

Пример: проверка состояния по завершении

В этом примере выполняется вызов проверки состояния, результатом которого является завершение.

Запрос

GET [Geographical URI]/api/status/9E378E56-6F35-41E9-BF8B-C0CC88E2B832&api-version=1.0
Accept: application/json
Content-Type: application/json; charset=utf-8
x-ms-correlation-id: 9E378E56-6F35-41E9-BF8B-C0CC88E2B832
x-ms-tenant-id: F2E60E49-CB87-4C24-8D4F-908813B22506

Response

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
    "privacyPolicy":"https://go.microsoft.com/fwlink/?LinkID=310140",
    "progress":100,
    "resultFileUris":["https://fakeblob.blob.core.windows.net/report-files/mySolution.zip?sv=2017-11-09&sr=b&sig=xyz&se=2019-06-11T20%3A27%3A59Z&sp=rd"],"runCorrelationId":"9E378E56-6F35-41E9-BF8B-C0CC88E2B832","status":"Finished","issueSummary":
    {
        "informationalIssueCount":0,
        "lowIssueCount":0,
        "mediumIssueCount":302,
        "highIssueCount":30,
        "criticalIssueCount":0
    }
}

См. также

Использование веб-API средства проверки Power Apps
Получение списка наборов правил
Получение списка правил
Отправка файла
Вызов задания анализа