RESTAPIを介してサイトページを作成する

Aug 22 2020

自分のタイトルとコンテンツを使用して、RESTAPIを介してサイトページを作成したいと思います。これまでのところ、POSTリクエストを送信しようとしましたが、エラーが発生しました。

ドキュメントライブラリにアイテムを追加するには、SPFileCollection.Add()を使用します

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

体:

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

私が理解していることから、最初にSharePointでサイトページ(ファイル)を作成し、次にRESTを介して変更する必要があります。ただし、私の要件は、RESTのみを介してエントリ全体を作成することです。

これはどのように行うことができますか?

回答

1 spDevAdmin Aug 22 2020 at 18:26

これは、これを行う方法を説明する素晴らしい記事です。基本的.aspxに、サイトページライブラリに新しいファイルを作成します。彼らが使用するコードは次のとおりです(ターゲットWebのページから呼び出されます)。

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. SharePointで「最新のエントリ」のテンプレートを作成します。これを行うには、このガイドに従ってください。

  2. 保存したテンプレートを使用して、RESTAPIを介して新しいサイトページを作成します。テンプレートフォルダからそのサブページのルートフォルダにコピーするだけです。/_api/Web/GetFileByServerRelativeUrl('<source_url>')/CopyTo(strnewurl='<target_url>',bOverwrite=false)

  3. 新しく作成したサイトページを必要に応じて編集します(REST APIなどを使用)。

ソースURLとターゲットURL:

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

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