サイト移動
概要¶
APIを使用してサイトの親サイト(フォルダ階層)を変更します。
これまでサイトの移動は、サイトメニュー上でのドラッグ&ドロップ操作でのみ行えました。本APIにより、外部プログラムからサイトの階層構造を変更できます。移動対象のサイトが持つ子サイトは、親サイトに追随して移動します。子サイトに対して個別にAPIを実行する必要はありません。
注意事項¶
- 移動してもサイトの「権限の継承元」(
InheritPermission)は変更されません。移動先に合わせて権限の継承を変更する場合は、別途サイト更新またはサイトの設定画面から変更してください。
制限事項¶
- 移動先にはフォルダ(参照タイプが「Sites」のサイト)のみ指定できます。テーブル(期限付き、記録、Wiki等)を移動先に指定した場合はエラーとなります。
- 移動対象のサイト自身、および移動対象のサイトの子孫にあたるサイトは移動先に指定できません。指定した場合はエラーとなります。
- 移動先には、APIを実行するユーザと同じテナントのサイトのみ指定できます。
- サイト更新の
ParentIdはサイトの移動には使用できません。サイトを移動する場合は本APIを使用してください。
前提条件¶
- APIキーの作成を実施すること。
- Api.jsonの
Enabledパラメータが true に設定されていること。 -
移動対象のサイト、移動対象のサイトの親サイト(移動元)、および移動先のサイトの管理権限をもつユーザであること。移動対象のサイトがトップ直下にある場合、移動元の親サイトの管理権限は不要です。
-
User.jsonの
DisableTopSiteCreationが true の場合、移動先にトップ(ParentIdに 0)を指定するには「ユーザの管理」で「サイトトップへの作成を許可」が有効なユーザであること。 - User.jsonの
DisableMovingFromTopSiteが true の場合、トップ直下のサイトを移動するには「ユーザの管理」で「サイトトップからの移動を許可」が有効なユーザであること。
リクエスト¶
下記のリクエスト形式で、JSONデータを送信します。
| 設定項目 | 値 |
|---|---|
| HTTPメソッド | POST |
| Content-Type | application/json |
| 文字コード | UTF-8 |
| URL | http://{サーバ名}/api/items/{サイトID}/MoveSite1 |
| Body | 以下のJSONデータを参考のこと |
Bodyに指定する項目¶
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 | 数値 | 移動したサイトのサイト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 以降 | 機能追加 |
関連情報¶
- 開発者ガイド:API:APIキーの作成
- 開発者ガイド:API:サイト更新
- 開発者ガイド:スクリプト:$p.apiMoveSite
- パラメータ設定:Api.json
- パラメータ設定:User.json
- 管理者ガイド:ユーザ管理:作成・更新
-
{サーバ名}、{サイトID}の部分は、適宜、環境に合わせて編集してください。{サイトID}には、移動するサイトのサイトIDを指定してください。pleasanter.netの場合は
https://pleasanter.net/fs/api/items/{サイトID}/MoveSiteの形式になります。 ↩ -
ユーザを認証できないため、メッセージはService.jsonの
DefaultLanguageに設定した言語で返ります。DefaultLanguageがenの場合は「Unable to authorize.」が返ります。 ↩

