2017-02-16 4 views
1

Вот запрос 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}); 
+0

Спасибо за очистку – user2867778

+0

Есть ли дополнительная информация Мне нужно предоставить помощь по этой проблеме? – user2867778

ответ

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' 

Вы можете также поместить в скобки, если у вас есть более сложные сценарии или предпочитают это для readabilty:

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

Не забудьте UrlEncode если ваша инфраструктура уже не делает этого.

Для получения дополнительных сведений о параметрах запроса ODATA вы можете посмотреть http://www.odata.org/documentation/odata-version-3-0/url-conventions/ (это v3, используйте соответствующую версию в зависимости от системы, с которой вы разговариваете).

+0

Спасибо за это очень подробное объяснение. Я начну рассматривать ODATA как возможное решение для ряда подобных проблем :) – user2867778