如何从创建文档库响应中获取 ListURL?
How to get ListURL from Create Document Library response?
当我通过客户端 REST API 在 SharePoint 中创建文档库时,我得到不同的字段来标识库(如标题、实体类型名称、ID)。创建名为“Школьные материалы 2.”的库时的示例响应:
{
"d": {
"__metadata": {
"id": "https://somesite.sharepoint.com/sites/Team_49de5296/_api/Web/Lists(guid'd94587ec-ff65-4b61-b0e8-2a00513494ee')"
…
},
…
"DocumentTemplateUrl": "/sites/Team_49de5296/2/Forms/template.dotx",
…
"EntityTypeName": "2",
"Id": "d94587ec-ff65-4b61-b0e8-2a00513494ee",
"ParentWebUrl": "/sites/Team_49de5296",
"Title": "Школьные материалы 2."
}
}
虽然当我转到 SharePoint 门户时,库的 URL 是 https://somesite.sharepoint.com/sites/Team_49de5296/2/Forms/AllItems.aspx。我使用的平台仅支持 listUrls,对于我的库,它是“/sites/Team_49de5296/2”。如何从创建文档库响应中获取它?我应该做单独的查询来获取它吗? 属性 会是什么?
是的,它在已创建列表响应中不可用。
但是您可以从一个名为 RootFolder
的延迟 属性 中获取它,它将有一个 URL 来发出该请求。出于性能原因,默认情况下不可用。
因此,您可以从下面的示例代码进行修改:
var siteUrl = _spPageContextInfo.webAbsoluteUrl;
var fullUrl = siteUrl + "/_api/web/lists";
$.ajax({
url: fullUrl,
type: "POST",
data: JSON.stringify({
'__metadata': { 'type': 'SP.List' },
'BaseTemplate': 100,
'Title': "Test JS List"
}),
headers: {
"accept": "application/json;odata=verbose",
"content-type": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: function(data){
console.log(data);
// get the RootFolder endpoint
var listRootFolderEndpoint = data.d.RootFolder["__deferred"]["uri"];
$.getJSON(listRootFolderEndpoint, function( rootFolderListData ) {
// Make a GET request and then get data
console.log(rootFolderListData);
var listServerRelativeUrl = rootFolderListData.ServerRelativeUrl);
});
},
error: function(data){
console.log(data);
}
});?
当我通过客户端 REST API 在 SharePoint 中创建文档库时,我得到不同的字段来标识库(如标题、实体类型名称、ID)。创建名为“Школьные материалы 2.”的库时的示例响应:
{
"d": {
"__metadata": {
"id": "https://somesite.sharepoint.com/sites/Team_49de5296/_api/Web/Lists(guid'd94587ec-ff65-4b61-b0e8-2a00513494ee')"
…
},
…
"DocumentTemplateUrl": "/sites/Team_49de5296/2/Forms/template.dotx",
…
"EntityTypeName": "2",
"Id": "d94587ec-ff65-4b61-b0e8-2a00513494ee",
"ParentWebUrl": "/sites/Team_49de5296",
"Title": "Школьные материалы 2."
}
}
虽然当我转到 SharePoint 门户时,库的 URL 是 https://somesite.sharepoint.com/sites/Team_49de5296/2/Forms/AllItems.aspx。我使用的平台仅支持 listUrls,对于我的库,它是“/sites/Team_49de5296/2”。如何从创建文档库响应中获取它?我应该做单独的查询来获取它吗? 属性 会是什么?
是的,它在已创建列表响应中不可用。
但是您可以从一个名为 RootFolder
的延迟 属性 中获取它,它将有一个 URL 来发出该请求。出于性能原因,默认情况下不可用。
因此,您可以从下面的示例代码进行修改:
var siteUrl = _spPageContextInfo.webAbsoluteUrl;
var fullUrl = siteUrl + "/_api/web/lists";
$.ajax({
url: fullUrl,
type: "POST",
data: JSON.stringify({
'__metadata': { 'type': 'SP.List' },
'BaseTemplate': 100,
'Title': "Test JS List"
}),
headers: {
"accept": "application/json;odata=verbose",
"content-type": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: function(data){
console.log(data);
// get the RootFolder endpoint
var listRootFolderEndpoint = data.d.RootFolder["__deferred"]["uri"];
$.getJSON(listRootFolderEndpoint, function( rootFolderListData ) {
// Make a GET request and then get data
console.log(rootFolderListData);
var listServerRelativeUrl = rootFolderListData.ServerRelativeUrl);
});
},
error: function(data){
console.log(data);
}
});?