Erstellen Sie eine Site-Seite über die REST-API
Ich möchte eine Site-Seite über die REST-API mit meinem eigenen Titel und Inhalt erstellen. Bisher habe ich versucht, eine POST-Anfrage zu senden, aber eine Fehlermeldung erhalten:
Verwenden Sie SPFileCollection.Add (), um ein Element zu einer Dokumentbibliothek hinzuzufügen.
POST: <url>/_api/web/lists/GetByTitle('Site Pages')/Items
Körper:
{
"__metadata": {
"type": "SP.Data.SitePagesItem"
},
"Title": "It's working?"
}
Soweit ich weiß, muss ich zuerst eine Websiteseite (eine Datei) in SharePoint erstellen und dann über REST ändern. Meine Anforderung ist jedoch, den gesamten Eintrag nur über REST zu erstellen.
Wie kann das gemacht werden?
Antworten
Dies ist ein großartiger Artikel, der erklärt, wie das geht. Im Wesentlichen wird eine neue .aspxDatei in der Site Pages-Bibliothek erstellt. Hier ist der Code, den sie verwenden (von einer Seite im Zielweb aufgerufen):
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");
}
});
}
Erstellen Sie die Vorlage eines "modernen Eintrags" in SharePoint. Befolgen Sie dazu diese Anleitung.
Erstellen Sie mithilfe dieser gespeicherten Vorlage eine neue Site-Seite über die REST-API. Kopieren Sie es einfach aus dem Vorlagenordner in den Stammordner dieser Unterseite:
/_api/Web/GetFileByServerRelativeUrl('<source_url>')/CopyTo(strnewurl='<target_url>',bOverwrite=false)Bearbeiten Sie diese neu erstellte Site-Seite wie gewünscht (z. B. über die REST-API).
Quell- und Ziel-URLs:
source_url - - /sites/<your_site>/SitePages/Templates/Your-Template.aspx
target_url - - /sites/<your_site>/SitePages/New-Modern-Page.aspx