Priority Software REST API调用报错:$select与$filter语法问题求助
Priority Software REST API调用语法错误排查
我正尝试让Priority Software的REST API调用正常运行,当前使用的调用URL:
https://us.priority-software.com/us3/odata/Priority/tabpe01n.ini/init51/FNCLOG?$select=FNCNUM,FNCTRANS,FNCIREF1,FNCIREF2,VFES_FNCITIREF,CREDIT1,DEBIT1,DC,SUM1,DETAILS,ACCNAME,ACCDES,KLINE,USERLOGIN,UDATE,vfes_udate$filter=UDATEnevfes_udate
我的需求是仅拉取UDATE不等于vfes_udate的记录,但收到如下错误:
0000: {"error":{"code":"400","message":"Term 'FNCNUM,FNCTRANS,FNCIREF1
0040: ,FNCIREF2,VFES_FNCITIREF,CREDIT1,DEBIT1,DC,SUM1,DETAILS,ACCNAME,
0080: ACCDES,KLINE,USERLOGIN,UDATE,vfes_udate$filter=UDATEnevfes_udate
00c0: ' is not valid in a $select or $expand expression.","target":"",
我怀疑语法有误,不确定是否可以在$select后使用$filter,恳请提供解决思路。
解决思路
- 修正参数分隔符:
$select和$filter是两个独立的OData查询参数,必须用&分隔。你的URL里直接把$filter接在$select的字段列表后,导致API误将$filter内容识别为$select的一部分,这是报错的核心原因。 - 修正不等于运算符:OData中表示“不等于”的运算符是
ne,且运算符前后需要加空格。你的URL里写成了UDATEnevfes_udate,缺少空格和正确的运算符格式,应改为UDATE ne vfes_udate。
修正后的URL
https://us.priority-software.com/us3/odata/Priority/tabpe01n.ini/init51/FNCLOG?$select=FNCNUM,FNCTRANS,FNCIREF1,FNCIREF2,VFES_FNCITIREF,CREDIT1,DEBIT1,DC,SUM1,DETAILS,ACCNAME,ACCDES,KLINE,USERLOGIN,UDATE,vfes_udate&$filter=UDATE ne vfes_udate
补充:OData查询支持同时使用$select和$filter,只要参数格式正确、用&分隔即可。
内容的提问来源于stack exchange,提问作者agir
相关产品推荐
相关产品推荐

