是否可以同时查询两个列表?
url:http://sites.com/url/_api/web/lists/GetByTitle('List1')
url:http://sites.com/url/_api/web/lists/GetByTitle('List1'和' List2')
答案 0 :(得分:1)
对于Linked Lists,您可以指定请求返回其他列表中的投影字段和Lookups的值。为此,请在$select
和$expand
查询选项中指定字段名称。
实施例
假设以下链接列表 - Employee
和Company
,其中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了解更多详情。
然后,您可以阅读Employee
和Company
中的列表项,如下所示:
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来做 - 你可以简单地做两个查询异步,它们将并行执行。