Erstellen Sie eine Site-Seite über die REST-API

Aug 22 2020

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

1 spDevAdmin Aug 22 2020 at 18:26

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");
    }
});
}
Sokołow Aug 25 2020 at 15:05
  1. Erstellen Sie die Vorlage eines "modernen Eintrags" in SharePoint. Befolgen Sie dazu diese Anleitung.

  2. 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)

  3. 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