REST查询有两个列表

时间:2014-04-09 06:45:36

标签: jquery rest sharepoint

是否可以同时查询两个列表?

url:http://sites.com/url/_api/web/lists/GetByTitle('List1')

url:http://sites.com/url/_api/web/lists/GetByTitle('List1'和' List2')

2 个答案:

答案 0 :(得分:1)

链接列表

对于Linked Lists,您可以指定请求返回其他列表中的投影字段和Lookups的值。为此,请在$select$expand查询选项中指定字段名称。

实施例

假设以下链接列表 - EmployeeCompany,其中Employee列表包含Company列表的查找列:

/_api/web/lists/getByTitle('Employee')/items?$select=Title,Company/ID,Company/Title&$expand=Company/ID

常规名单

您需要执行两个请求,因为REST API不支持批处理。

示例:

以下示例演示了如何对列表项执行读取操作

function getListItems(listName, siteurl, success, failure) {
    $.ajax({
        url: siteurl + "/_api/web/lists/getbytitle('" + listName + "')/items",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {
            success(data.d.results);
        },
        error: function (data) {
            failure(data);
        }
    });
}

请参阅文章Manipulating list items in SharePoint Hosted Apps using the REST API了解更多详情。

然后,您可以阅读EmployeeCompany中的列表项,如下所示:

getListItems('Employee','https://contoso.sharepoint.com',
   function(employeeItems){
       console.log(employeeItems);

       getListItems('Company','https://contoso.sharepoint.com',
          function(companyItems){
            console.log(companyItems);
          },
          function(error){
            console.log(JSON.stringify(error));
          }
       );
   },
   function(error){
       console.log(JSON.stringify(error));
   }
);

答案 1 :(得分:0)

如果要批量查询 - 可以使用javascript客户端对象模型。在这种情况下,当你执行context.ExecuteQueryAsync()时 - 您在一次请求时查询之前定义的所有内容。

如果你需要通过REST来做 - 你可以简单地做两个查询异步,它们将并行执行。