使用API​​查询接受其他值

时间:2017-02-16 06:04:30

标签: php api

这是我在另一家公司制作的自定义应用中追踪的API查询,其中没有任何文档符合我的技能,但在您的其中一个内部。

目的是找到任何带有'类别'等于'重要'。

还可以退回带有'类别'的商品。相当于' 3M CGS'以及'重要'。

这里是重要类别的工作代码

//List:  Calendar, CATEGORY=IMPORTANT

var queryImportantDept = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/GetByTitle('Calendar')/Items?$select,FileRef=*&$orderby=EventDate%20asc&$top=10&$filter=Category%20eq%20%27Important%27"; 

$.ajax({ url: queryImportantDept, method: "GET", headers: { "Accept": "application/json; odata=verbose" }, success: onQuerySuccessDeptImportantDates, error: onQueryErrorDeptImportantDates});

1 个答案:

答案 0 :(得分:1)

使用ODATA,您可以轻松组合过滤器表达式。所以在你的情况下使用以下表达式

$filter=Category%20eq%20%27Important%27

可以与and在逻辑上与此表达式结合使用:

$filter=Category%20eq%20%27Important%27%20and%20Category%20eq%20%273M%20CGS%27%20

视觉上更吸引人的可能是这种形式:

$filter=Category eq 'Important' and Category eq '3M CGS' 

如果您想要返回实体,如果Category Important 3M CGS(或两者),您可以使用此表格:

$filter=Category eq 'Important' or Category eq '3M CGS' 

如果您有更复杂的情况,或者您更喜欢这种情况,您也可以放在括号中:

$filter=(Category eq 'Important') and (Category eq '3M CGS') 

如果您的框架尚未执行此操作,请不要忘记UrlEncode。

有关ODATA查询选项的更多信息,您可以查看http://www.odata.org/documentation/odata-version-3-0/url-conventions/(这是v3,根据您正在与之交谈的系统使用适当的版本)。