Создать страницу сайта через REST API
Я хотел бы создать страницу сайта через REST API с моим собственным заголовком и контентом. Пока я пытался отправить запрос POST, но получил ошибку:
Чтобы добавить элемент в библиотеку документов, используйте SPFileCollection.Add ()
ПОСЛЕ: <url>/_api/web/lists/GetByTitle('Site Pages')/Items
Тело:
{
"__metadata": {
"type": "SP.Data.SitePagesItem"
},
"Title": "It's working?"
}
Насколько я понимаю, сначала мне нужно создать страницу сайта (файл) в SharePoint, а затем изменить ее через REST. Однако мое требование - создать всю запись только через REST.
Как это может быть сделано?
Ответы
Это отличная статья, объясняющая, как это сделать. По сути, он создает новый .aspxфайл в библиотеке страниц сайта. Вот код, который они используют (вызывается со страницы в целевой сети):
function CreateWikiPage() {
// Get Server relative url of Web(site)
var WebServerRelativeUrl = _spPageContextInfo.webServerRelativeUrl;
// Provide Internal name of the library here
var DocuentLibraryInternalName = "SitePages";
// Provide name of the wiki page to be created
var NewPageName = "NewRESTWikipage.aspx";
// Form relative url of the new page. This will be used in function below
var NewFileUrl = WebServerRelativeUrl + "/" + DocuentLibraryInternalName + "/" + NewPageName;
$.ajax({ // "templateFileType" values in below method // StandardPage. The value = 0. // WikiPage. The value = 1. // FormPage. The value = 2. url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/GetFolderByServerRelativeUrl('" + WebServerRelativeUrl + "/" + DocuentLibraryInternalName + "')/Files/AddTemplateFile(urlOfFile='" + NewFileUrl + "',templateFileType=1)", method: "POST", headers: { "accept": "application/json;odata=verbose", "content-type": "application/json;odata=verbose", "X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: function (data, status, xhr) {
console.log("Success");
},
error: function (xhr, status, error) {
console.log("Failed");
}
});
}
Создайте Шаблон «Современные записи» в SharePoint. Следуйте этому руководству, чтобы сделать это.
Создайте новую страницу сайта через REST API, используя этот сохраненный шаблон. Просто скопируйте его из папки шаблона в корневую папку этой подстраницы:
/_api/Web/GetFileByServerRelativeUrl('<source_url>')/CopyTo(strnewurl='<target_url>',bOverwrite=false)Отредактируйте эту недавно созданную страницу сайта по своему усмотрению (например, через REST API).
Исходный и целевой URL:
source_url - /sites/<your_site>/SitePages/Templates/Your-Template.aspx
target_url - /sites/<your_site>/SitePages/New-Modern-Page.aspx