SP 365 rest api поиска возвращает «500 внутренних ошибок сервера» для использования HTTP POST

#sharepoint-rest-api #microsoft365

Вопрос:

Наш продукт использует API поиска SP 365. Некоторые из наших клиентов сообщают, что при использовании следующего поискового API: «/_api/поиск/postquery» с телом:

     {'request': {
         'Querytext':'test',
         'SourceId':'8413cd39-2156-4e00-b54d-11efd9abdb89', 
         'RowLimit':400,
         'SelectProperties':{
           'results':['Title','Path','Description','Write','Rank','Size']}, 
        'TrimDuplicates':true,
        'ClientType':'Custom',
        'Culture':1030,
        'SortList':{'results':[{'Property':'Rank','Direction':'1'}]}
     }}
 

возвращает код состояния HTTP 500 с текстом ошибки (внутри ответа json): «Произошла неизвестная ошибка».
Однако, если добавить в запрос выше условие, чтобы ограничить его определенным списком SP, например:

      {'request': {
         'Querytext':'test AND "ListId":{A7B96B28-6062-435B-A2EE-4792512A95A1}',
         'SourceId':'8413cd39-2156-4e00-b54d-11efd9abdb89', 
         'RowLimit':400,
         'SelectProperties':{
           'results':['Title','Path','Description','Write','Rank','Size']}, 
        'TrimDuplicates':true,
        'ClientType':'Custom',
        'Culture':1030,
        'SortList':{'results':[{'Property':'Rank','Direction':'1'}]}
     }}
 

тогда запрос работает хорошо.

Это происходит для конкретных арендаторов, таких как ‘pfgroupas.sharepoint.com». Эти вызовы API работают уже много лет (начиная с SP 2013) и прерываются в последние несколько дней.

Ответ №1:

Оказывается, для некоторых арендаторов внутренняя ошибка сервера проявляется, если указать параметр «Список сортировки». Если вы создадите запрос без него, например:

 {'request': {
     'Querytext':'test',
     'SourceId':'8413cd39-2156-4e00-b54d-11efd9abdb89', 
     'RowLimit':400,
     'SelectProperties':{
       'results':['Title','Path','Description','Write','Rank','Size']}, 
    'TrimDuplicates':true,
    'ClientType':'Custom',
    'Culture':1030
 }}
 

тогда все работает нормально. Мне кажется, это ошибка на стороне сервера.