Azure APIM获取订阅键API报400错误,求正确$filter语法
正确的Azure APIM订阅查询Filter语法与Curl请求
错误原因
你之前使用的| name | ThoughtSpot-Trusted-Auth| eq |这类写法不符合APIM REST API要求的OData v3过滤语法,导致400请求错误。
正确Filter写法
要筛选名称为ThoughtSpot-Trusted-Auth的订阅,正确的OData Filter表达式为:
name eq 'ThoughtSpot-Trusted-Auth'
进行URL编码后,查询字符串中的$filter参数应为:
%24filter=name%20eq%20%27ThoughtSpot-Trusted-Auth%27
完整的Curl请求
curl --location 'https://gb-apim-dev.management.azure-api.net/subscriptions/b01ac92a-4fd4-9dc5-2506afa98816/resourceGroups/JLL-GB-RG-APIM-Dev/providers/Microsoft.ApiManagement/service/JLL-GB-APIM-Dev/subscriptions?%24filter=name%20eq%20%27ThoughtSpot-Trusted-Auth%27&api-version=2022-08-01' \ --header 'Authorization: SharedAccessSignature uid=integration&ex=2023-09-07T08:23:24.0288132Z&sn=fdfd+ggg=='
语法说明
Azure APIM的订阅列表API采用OData v3过滤规则,核心要点:
- 匹配字符串字段时,需用单引号包裹目标值
- 比较操作符使用
eq(等于)、ne(不等于)等标准OData操作符 - 支持过滤的字段包括
name、userId、productId、state等
官方文档核心规则翻译
该API支持使用OData表达式过滤返回结果,可过滤的字段及允许的操作符如下:
- 字段:
name(订阅名称)、userId(关联用户ID)、productId(关联产品ID)、state(订阅状态,可选值:active、suspended、expired、submitted、rejected、cancelled)- 操作符:
eq(等于)、ne(不等于)、gt(大于)、lt(小于)、ge(大于等于)、le(小于等于)、and(逻辑与)、or(逻辑或)
内容的提问来源于stack exchange,提问作者DIBYA RANJAN TRIPATHY
相关产品推荐
相关产品推荐

