コンテンツにスキップ

サイト移動

概要

APIを使用してサイトの親サイト(フォルダ階層)を変更します。

これまでサイトの移動は、サイトメニュー上でのドラッグ&ドロップ操作でのみ行えました。本APIにより、外部プログラムからサイトの階層構造を変更できます。移動対象のサイトが持つ子サイトは、親サイトに追随して移動します。子サイトに対して個別にAPIを実行する必要はありません。

注意事項

  1. 移動してもサイトの「権限の継承元」(InheritPermission)は変更されません。移動先に合わせて権限の継承を変更する場合は、別途サイト更新またはサイトの設定画面から変更してください。

制限事項

  1. 移動先にはフォルダ(参照タイプが「Sites」のサイト)のみ指定できます。テーブル(期限付き、記録、Wiki等)を移動先に指定した場合はエラーとなります。
  2. 移動対象のサイト自身、および移動対象のサイトの子孫にあたるサイトは移動先に指定できません。指定した場合はエラーとなります。
  3. 移動先には、APIを実行するユーザと同じテナントのサイトのみ指定できます。
  4. サイト更新の ParentId はサイトの移動には使用できません。サイトを移動する場合は本APIを使用してください。

前提条件

  1. APIキーの作成を実施すること。
  2. Api.jsonの Enabled パラメータが true に設定されていること。
  3. 移動対象のサイト、移動対象のサイトの親サイト(移動元)、および移動先のサイトの管理権限をもつユーザであること。移動対象のサイトがトップ直下にある場合、移動元の親サイトの管理権限は不要です。

    移動前と移動後のサイトの階層。フォルダAの下のフォルダXを、フォルダBの下へ移動する。サイトの管理権限が必要なのは、移動元の親サイト(フォルダA)・移動対象のサイト(フォルダX)・移動先のサイト(フォルダB)の3つ。子サイトはフォルダXと一緒に移動する

  4. User.jsonの DisableTopSiteCreation が true の場合、移動先にトップ(ParentId に 0)を指定するには「ユーザの管理」で「サイトトップへの作成を許可」が有効なユーザであること。

  5. User.jsonの DisableMovingFromTopSite が true の場合、トップ直下のサイトを移動するには「ユーザの管理」で「サイトトップからの移動を許可」が有効なユーザであること。

リクエスト

下記のリクエスト形式で、JSONデータを送信します。

設定項目 値
HTTPメソッド POST
Content-Type application/json
文字コード UTF-8
URL http://{サーバ名}/api/items/{サイトID}/MoveSite1
Body 以下のJSONデータを参考のこと

Bodyに指定する項目

{
    "ApiVersion": 1.1,
    "ApiKey": "345yuAjA6789dA09d8uj6...",
    "ParentId": 12300
}

ParentId に 0 を指定すると、サイトはトップに移動されます。

{
    "ApiVersion": 1.1,
    "ApiKey": "345yuAjA6789dA09d8uj6...",
    "ParentId": 0
}

APIパラメータ

項目名 型 必須 備考
ApiVersion 数値 ○ APIのバージョン
ApiKey 文字列 ○ APIキー。ログインしているブラウザのセッションからアクセスする場合は省略可能
ParentId 数値 ○ 移動先の親サイトID。0を指定した場合はトップに移動

実行例のサンプル

サイトID「12300」のフォルダの配下へ移動するには以下のように指定します。

注意事項

コード内の{{ ... }}やAPIキーは適宜修正してください。

PowerShellのサンプル

$body = @{
    ApiVersion = 1.1
    ApiKey     = "345yuAjA6789dA09d8uj6..."
    ParentId   = 12300
} | ConvertTo-Json
Invoke-RestMethod -Uri "https://{{サーバ名}}/api/items/12345/MoveSite" -Method Post -ContentType "application/json; charset=utf-8" -Body $body

Pythonのサンプル

import requests

res = requests.post("https://{{サーバ名}}/api/items/12345/MoveSite", json={
    "ApiVersion": 1.1,
    "ApiKey": "345yuAjA6789dA09d8uj6...",
    "ParentId": 12300,
})
print(res.status_code, res.json())

curlのサンプル

curl -X POST "https://{{サーバ名}}/api/items/12345/MoveSite" \
  -H "Content-Type: application/json" \
  -d '{"ApiVersion":1.1,"ApiKey":"345yuAjA6789dA09d8uj6...","ParentId":12300}'

レスポンス

成功した場合、下記の形式のJSONデータが返却されます。

{
    "Id": 12345,
    "StatusCode": 200,
    "Message": "\" 営業部 \" を移動しました。"
}
項目名 型 備考
Id 数値 移動したサイトのサイトID
StatusCode 数値 HTTPステータスコード
LimitPerDate 数値 1日に実行可能なAPIの上限数。上限が設定されていない場合は出力されない
LimitRemaining 数値 当日に実行可能なAPIの残数。上限が設定されていない場合は出力されない
Message 文字列 処理結果のメッセージ

エラーの場合は下記が返却されます。

StatusCode Message 状況
400 要求が不正です。 ParentId が指定されていない場合。
401 認証できませんでした。2 APIキーが指定されていない、または不正な場合。
403 この操作を行うための権限がありません。 移動対象のサイト、移動元の親サイト、または移動先のサイトの管理権限が無い場合。トップへの移動やトップからの移動が許可されていない場合。
404 指定された情報は見つかりませんでした。 移動対象または移動先のサイトが存在しない場合。移動先が別のテナントのサイトである場合。
500 この操作は行なえません。 移動先がフォルダ以外の場合。移動先に移動対象のサイト自身または移動対象のサイトの子孫を指定した場合。

エラー時の確認事項

・API使用時の注意点やエラーが発生する場合の確認事項
・FAQ:変更後の設定ファイルやAPIリクエスト(JSON形式)が正しく認識されない場合の確認事項

対応バージョン

対応バージョン 内容
1.5.9.0 以降 機能追加

関連情報


  1. {サーバ名}、{サイトID}の部分は、適宜、環境に合わせて編集してください。{サイトID}には、移動するサイトのサイトIDを指定してください。pleasanter.netの場合は https://pleasanter.net/fs/api/items/{サイトID}/MoveSite の形式になります。 ↩

  2. ユーザを認証できないため、メッセージはService.jsonの DefaultLanguage に設定した言語で返ります。DefaultLanguage が en の場合は「Unable to authorize.」が返ります。 ↩