Jfrog X-RAY Get Reports List API调用返回分页参数解析失败错误
问题根因
调用Xray获取报告列表接口返回Failed to parse request pagination params错误,核心原因有两个:
- 该接口的
page_num、num_of_rows两个分页参数是必填项,且必须放在请求体JSON的根层级,和filters字段平级,不能放在filters内部,也不能作为URL查询参数传递。官方早期文档没有明确标注这个必填要求,很容易漏传。 - 你之前尝试加分页参数时出现的
[1] 19905这类shell输出,是因为把分页参数拼在URL末尾时没有给URL加引号,&符号被Bash解析为命令后台执行分隔符:curl命令被直接放到后台运行,page_num=1、num_of_rows=10被当成独立的变量赋值命令执行,根本没有随请求传给接口,最终接口还是收不到分页参数,继续返回解析错误。
另外你原始请求里的author字段值末尾多了一个冗余空格,会导致匹配不到对应作者生成的报告,需要删掉。
正确请求示例
## Get Reports List curl -s --request POST \ --user 'svc_api_xray':$(cat ~/secrets/.svc_api_xray | base64 --decode) \ --header "Content-Type: application/json" \ --data '{ "filters": { "name": "shared-installers", "status": [ "completed" ], "report_type": [ "vulnerability" ], "author": "svc_api_xray", "start_time_range": { "start": "2022-07-13T12:22:16Z", "end": "2022-07-13T12:22:16Z" }, "end_time_range": { "start": "2022-07-13T12:22:16Z", "end": "2022-07-13T12:22:16Z" } }, "page_num": 1, "num_of_rows": 10 }' \ "${ARTIFACTORY_URL}/xray/api/v1/reports"
注意事项
- 分页参数取值范围:
page_num从1开始计数,num_of_rows最大支持传100,超过会被接口拦截 - 所有包含特殊字符(比如
&、$)的URL参数,必须用双引号包裹,避免被Bash提前解析 - 如果不需要过滤特定条件,
filters对象可以传空,但是两个分页参数不能缺
内容的提问来源于stack exchange,提问作者Paul Maxfield
相关产品推荐
相关产品推荐

