Проверка состояния задания анализа
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 токен, который должен быть токеном для того же клиентского приложения, которое инициировало задание анализа.
Заголовки
Полное имя | Type | Ожидаемое значение | Обязательное? |
---|---|---|---|
Авторизация | string | OAuth 1 токен на предъявителя с Microsoft Entra заявкой на идентификатор приложения. | yes |
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/aaaa0000-bb11-2222-33cc-444444dddddd&api-version=1.0
Accept: application/json
Content-Type: application/json; charset=utf-8
x-ms-correlation-id: aaaa0000-bb11-2222-33cc-444444dddddd
x-ms-tenant-id: aaaabbbb-0000-cccc-1111-dddd2222eeee
ответ
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":"aaaa0000-bb11-2222-33cc-444444dddddd","status":"Finished","issueSummary":
{
"informationalIssueCount":0,
"lowIssueCount":0,
"mediumIssueCount":302,
"highIssueCount":30,
"criticalIssueCount":0
}
}
См. также
Используйте Power Apps веб-API проверки
Получить список наборов правил
Получить список правил
Загрузить файл
Вызов анализа