URL 在对 Location API 的请求的响应中作为 analyze 标头的一部分返回。 其用于通过 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 令牌,该令牌必须是启动分析作业的同一客户端应用程序的令牌。
标头
| 客户 | 类型 | 预期值 | 是否需要? |
|---|---|---|---|
| 授权 | 字符串 | OAuth 具有应用程序 ID 声明的 Microsoft Entra 1 个持有者令牌。 | yes |
| x-ms-tenant-id | GUID | 应用程序的租户的 ID。 | yes |
| x-ms-correlation-id | GUID | 分析运行的标识符。 应该为整个执行(上载、分析、状态)提供同一个 ID | yes |
预期响应
| HTTP 状态代码 | 方案 | 结果 |
|---|---|---|
| 200 | 找到了一个或多个结果 | 请看以下示例。 将返回一项结果。 |
| 202 | 仍在处理 | 请看以下示例。 将返回一项结果。 |
| 403 | 已禁止 | 请求者与分析的请求发起者不同。 |
| 404 | 找不到 | 无法找到具有 URL 中提供的引用的分析请求。 |
预期响应标头
| 客户 | 类型 | 预期值 | 是否需要? |
|---|---|---|---|
| Location | uri | 用于查询当前状态和获取结果的 URI | yes |
预期响应正文
下表概述每个请求的响应(仅限 HTTP 200 或 202 响应)的结构。
| 属性 | 类型 | 预期值 | 是否需要? |
|---|---|---|---|
| privacyPolicy | 字符串 | 隐私策略的 URI。 | 是 |
| 进度 | int | 范围为 0-100 的完成度百分比值,其中 10 表示完成度大约为 10%。 | 是 |
| runCorrelationId | GUID | 每个请求中包含的请求标识符。 这可用于与请求关联(如果需要)。 | 是 |
| 状态 | 字符串 |
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 | 结果中的严重性标识为参考的问题的计数 | 是 |
示例:完成时的状态检查
此示例发出状态检查调用,并且结果为完成。
Request
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
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":"aaaa0000-bb11-2222-33cc-444444dddddd","status":"Finished","issueSummary":
{
"informationalIssueCount":0,
"lowIssueCount":0,
"mediumIssueCount":302,
"highIssueCount":30,
"criticalIssueCount":0
}
}