调用分析
通过POST
请求 analyze
例程启动分析作业。 分析的运行时间可能很,持续时间通常超过一分钟。 API 首先执行一些基本验证,通过提交作业在后端启动请求,然后使用状态代码 202 和 Location
标头或响应错误详细信息进行响应。 Location
标头值是 URL,可用于检查请求的状态和获取结果的 URL。 POST
操作提供多种选项,用于根据条件(如规则或规则集的列表、分析中要排除的文件等)调整作业。 可以使用以下 [Geographical URL]/api/analyze?api-version=1.0
启动分析。
备注
建议在两次状态检查之间等待 15 到 60 秒。 通常需要 1 到 5 分钟才能完成分析的运行。
此 API 需要令牌 OAuth 。
标题
客户 | 类型 | 预期值 | 是否为必填? |
---|---|---|---|
授权 | string | OAuth ID 为 Application ID 声明的 Microsoft Entra 1 个持有者令牌。 | yes |
x-ms-tenant-id | GUID | 应用程序的租户的 ID。 | 是 |
x-ms-correlation-id | GUID | 分析运行的标识符。 应该为整个执行(上载、分析、状态)提供同一个 ID。 | 是 |
接受 | 对象 | application/json, application/x-ms-sarif-v2 |
是 |
Accept-Language | 字符串 | 语言代码(例如,en-US)。 默认值为 en-US。 如果提供了多种语言,则第一种语言为主语言。 但是,将包含所有翻译(如果支持该语言)。 | 否 |
正文
常用选项:
属性 | 类型 | 预期值 | 是否为必填? |
---|---|---|---|
sasUriList | 字符串数组 | URI 的列表,这些 URI 提供服务访问权限以下载单个解决方案、包含多个解决方案文件的 zip 文件,或数据包。 | 是 |
ruleSets | 自定义的数组 | 0 或更多 | 否 |
ruleSets.id | guid | 规则集的 ID,可以通过查询规则集 API 找到。 | 否,但是这是您通常需要使用的。 必须使用此项或 ruleCodes。 |
ruleCodes.code | string | 所需规则的 ID,可以通过查询规则集和规则 API 找到。 | 否,必须使用此项或 ruleSets。 |
fileExclusions | 字符串数组 | 要排除的文件名或文件名模式的列表。 支持在文件名开始/或结束位置使用“*”作为通配符(例如,*jquery.dll 和 *jquery*)。 | 否 |
预期响应
HTTP 状态代码 | 场景 | 结果 |
---|---|---|
202 | 接受了分析请求,并且在 Location 标头中返回了状态检查 URI |
无结果正文 |
400 | 发送了非 zip 文件,参数不正确或包含的文件中有病毒 | 无结果正文 |
409 | 发送了 x-ms-correlation-id 标头值重复的请求 |
无结果正文 |
预期响应标头
客户 | Type | 预期值 | 是否为必填? |
---|---|---|---|
Location | Uri | 用于查询当前状态和获取结果的 URL | 是 |
示例:启动分析
这是使用 AppSource 认证规则集(这是一个文件)启动分析作业,并排除名称中包含 jquery 和 json 的文件的示例。
请求
POST [Geographical URI]/api/analyze?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
{
"ruleSets": [{
"id": "0ad12346-e108-40b8-a956-9a8f95ea18c9"
}],
"sasUriList": ["https://testenvfakelocation.blob.core.windows.net/mySolution.zip"],
"fileExclusions": ["*jquery*", "*json*"]
}
回复
HTTP/1.1 202 Accepted
Content-Type: application/json; charset=utf-8
Location: [Geographical URI]/api/status/aaaa0000-bb11-2222-33cc-444444dddddd&api-version=1.0