Как выполнить вызов REST, чтобы получить элементы списка с разных сайтов, используя TypeScript, что-то вроде Promises?

#typescript #rest #asynchronous #spfx

#typescript #rest #асинхронный #spfx

Вопрос:

Я пытаюсь получить элементы списка с 2 разных сайтов и выполнить некоторые действия только после получения всех данных. Я думал использовать что-то вроде.затем() и Promises.

Я использую SharePoint Framework, это для современного расширения SharePoint, а не веб-части. Я пытался использовать пакетную обработку, но это применимо только к одному сайту SharePoint.

Спасибо всем за вашу помощь!!

Уильям

 let web = new Web("https://test.sharepoint.com/test2");
let batch = web.createBatch();

web.lists.inBatch(batch).usingCaching().get().then((r: any) => {
});

web.lists.getByTitle("SharePoint Directory").items.usingCaching().inBatch(batch).top(5000).get().then((r: any) => {
});

batch.execute().then(() => {
  console.log("Data retrieved.");
});
  

Ответ №1:

Пример тестового скрипта для вызова rest api для доступа к другому сайту.(жестко закодируйте URL сайта, вы можете создавать динамически, пользователю также требуется разрешение для другого сайта)

 this.context.spHttpClient.get(`https://tenant.sharepoint.com/sites/lee/_api/web/lists/getbytitle('MyList2')/items`,
      SPHttpClient.configurations.v1,
      {
      headers: {
      'Accept': 'application/json;odata=nometadata',
      'Content-type': 'application/json;odata=verbose',
      'odata-version': ''
      }
      })
      .then((response: SPHttpClientResponse) => {
        response.json().then((data)=>{
          console.log(data);
        })

      });
  

Комментарии:

1. Привет, Ли, спасибо за твой ответ, ты предлагаешь использовать что-то подобное? mmsharepoint.wordpress.com/2018/06/08 /…

2. В идеале вы могли бы использовать search api, но это зависит от ваших требований, поскольку поиск не будет обновлять данные немедленно, поскольку это зависит от обхода онлайн-поиска. График может быть лучше learn.microsoft.com/en-us/graph/api / … код был бы сложнее, чем запрос rest api)