Crea la pagina del sito tramite l'API REST

Aug 22 2020

Vorrei creare una pagina del sito tramite l'API REST con il mio titolo e contenuto. Finora ho provato a inviare una richiesta POST ma ho ricevuto un errore:

Per aggiungere un elemento a una raccolta documenti, utilizzare SPFileCollection.Add ()

INVIARE: <url>/_api/web/lists/GetByTitle('Site Pages')/Items

Corpo:

{
  "__metadata": {
    "type": "SP.Data.SitePagesItem"
  },
  "Title": "It's working?"
}

Da quello che ho capito, prima devo creare una pagina del sito (un file) in SharePoint e quindi modificarla tramite REST. Tuttavia, il mio requisito è creare l'intera voce solo tramite REST.

Come si può fare?

Risposte

1 spDevAdmin Aug 22 2020 at 18:26

Questo è un ottimo articolo che spiega come farlo. In sostanza, crea un nuovo .aspxfile nella libreria delle pagine del sito. Ecco il codice che usano (chiamato da una pagina sul Web di destinazione):

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. Creare il modello di "voci moderne" in SharePoint. Segui questa guida per farlo.

  2. Crea una nuova pagina del sito tramite l'API REST utilizzando il modello salvato. Basta copiarlo dalla cartella dei modelli alla cartella principale di quella sottopagina:/_api/Web/GetFileByServerRelativeUrl('<source_url>')/CopyTo(strnewurl='<target_url>',bOverwrite=false)

  3. Modifica la pagina del sito appena creata come desideri (ad es. Tramite API REST).

URL di origine e di destinazione:

source_url - /sites/<your_site>/SitePages/Templates/Your-Template.aspx

target_url - /sites/<your_site>/SitePages/New-Modern-Page.aspx