调用getVirtualGuests搭配objectFilter时resultLimit参数不生效问题
SoftLayer API resultLimit参数搭配objectFilter失效问题说明
问题复现
你当前调用的接口信息如下:
- 接口地址:
https://api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests.json - 传入参数:
resultLimit=0,100objectFilter={"virtualGuests":{"datacenter":{"name":{"operation":"_=che01"}}}}
参数失效的时间节点
该参数解析逻辑变动发生在2022年第三季度,是IBM对SoftLayer v3 REST API的集合类查询接口做的迭代调整:当objectFilter和resultLimit同时以URL Query参数传递时,如果resultLimit放在objectFilter之后、或者objectFilter未做完整URL编码,特殊字符会截断Query解析逻辑,导致后续的resultLimit被识别为objectFilter的附属内容被忽略,并非该参数完全失效。
修复方案
你可以通过以下任意一种方式解决该问题:
- 调整参数传递顺序,将
resultLimit放在objectFilter之前传递 - 对
objectFilter的JSON内容做完整URL编码,避免特殊字符截断参数解析 - 改用HTTP POST方式发起请求,将所有参数放在请求体中传递,完全规避URL参数解析的异常问题
内容的提问来源于stack exchange,提问作者Gary Sutherland
相关产品推荐
相关产品推荐

