检查分析状态
URL 在对 analyze
API 的请求的响应中作为 Location
标头的一部分返回。 其用于通过 HTTP GET
查询分析作业的状态。 完成作业完成后,响应正文中将包含可在其中下载结果输出的 URL 或 URL 的列表。 继续调用此 URI,直到返回的 HTTP 状态代码为 200。 仍在运行作业时,将返回 HTTP 状态代码 202,并且 Location
标头中包含从 analyze
返回的同一个 URI。 返回 200 响应时,resultFileUris
属性中将包含输出的一个或一列可下载位置,其包含在 zip 文件中。 此 zip 下载中包含一个静态分析结果交换格式 (SARIF) V2 格式的文件,这种文件是 JSON
格式的文件,其中包含分析结果。 响应正文中将包含一个 IssueSummary
对象,该对象中包含找到的问题计数的摘要。
备注
建议在两次状态检查之间等待 15 到 60 秒。 通常需要 1 到 5 分钟才能完成分析的运行。
此 API 需要一个 OAuth 令牌,该令牌必须是启动分析作业的同一客户端应用程序的令牌。
标头
客户 | 类型 | 预期值 | 是否为必填? |
---|---|---|---|
授权 | string | OAuth 具有 Microsoft Entra 应用程序 ID 声明的 1 个持有者令牌。 | yes |
x-ms-tenant-id | GUID | 应用程序的租户的 ID。 | 是 |
x-ms-correlation-id | GUID | 分析运行的标识符。 应该为整个执行(上载、分析、状态)提供同一个 ID | 是 |
预期响应
HTTP 状态代码 | 方案 | 结果 |
---|---|---|
200 | 找到了一个或多个结果 | 请看以下示例。 将返回一项结果。 |
202 | 仍在处理 | 请看以下示例。 将返回一项结果。 |
403 | 已禁止 | 请求者与分析的请求发起者不同。 |
404 | 找不到 | 无法找到具有 URL 中提供的引用的分析请求。 |
预期响应标头
客户 | Type | 预期值 | 是否为必填? |
---|---|---|---|
Location | uri | 用于查询当前状态和获取结果的 URI | 是 |
预期响应正文
下表概述每个请求的响应(仅限 HTTP 200 或 202 响应)的结构。
属性 | Type | 预期值 | 是否为必填? |
---|---|---|---|
privacyPolicy | string | 隐私策略的 URI。 | 是 |
进度 | int | 范围为 0-100 的完成度百分比值,其中 10 表示完成度大约为 10%。 | 是 |
runCorrelationId | GUID | 每个请求中包含的请求标识符。 这可用于与请求关联(如果需要)。 | 是 |
状态 | string | InProgress 在作业仍在处理时返回。 Failed 在服务器上处理作业时出现灾难性问题时返回。 错误属性中应该会有更多详细信息。 Finished 在作业成功完成且没有问题时返回。 FinishedWithErrors ,但是,一个或多个规则未能完成且没有错误。 这仅仅是供您了解报告可能不完整的信号。 Microsoft 在后端意识到这些问题,并将努力诊断和解决问题。 |
是 |
resultFileUris | 字符串数组 | 可用于直接下载输出的 URI 的列表。 原始分析 API 调用中的每个文件应该有一个。 | 否。 仅在处理完成时才应包含。 |
issueSummary | IssueSummary | 下面列出的属性 | 否。 仅在处理完成时才应包含。 |
issueSummary.criticalIssueCount | int | 结果中的严重性标识为严重的问题的计数 | 是 |
issueSummary.highIssueCount | int | 结果中的严重性标识为高的问题的计数 | 是 |
issueSummary.mediumIssueCount | int | 结果中的严重性标识为中等的问题的计数 | 是 |
issueSummary.lowIssueCount | int | 结果中的严重性标识为低的问题的计数 | 是 |
issueSummary.informationalIssueCount | int | 结果中的严重性标识为参考的问题的计数 | 是 |
示例:完成时的状态检查
此示例发出状态检查调用,并且结果为完成。
请求
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
回复
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
}
}