Skip to content

API ラッパーの対応表 ​

第2版作成 最終更新 (日本時間)
確認バージョン1.5.8.1

プリザンターの Web API(/api/...)には、スクリプト(ブラウザ側の $p.api*)とサーバースクリプト(items.* など)のラッパーがあります。ただし、すべての API にラッパーがあるわけではなく、同じ「取得」でも返ってくる項目が違います。このページは、どの API がどこから呼べるかの対応表です。

INFO

実装の根拠は、確認時のソースへの固定リンクで示しています。スクリプトのラッパーは _api.js、サーバースクリプトのホストオブジェクトは ServerScriptUtilities.cs#L1224-L1251 で確かめています。

3 つの層の関係 ​

図を読み込み中…

  • スクリプト: $p.apiExec(url, args) で args.data を JSON にして POST する薄いラッパーです。画面の CSRF トークン(Token)を自動で付け、セッションで認証します(_api.js#L64-L86)。ラッパーがない API も $p.apiExec() に URL を渡せば呼べます。
  • サーバースクリプト: HTTP を通らず、API 用の Context を作り直して C# の処理を直接呼びます(ServerScriptUtilities.cs#L1401-L1427)。ラッパーがない API は httpClient で自分自身の Web API を呼ぶしかありません。

レコード(Items) ​

Web APIスクリプトサーバースクリプト備考
{id}/Get$p.apiGetitems.Get(id, view)
{id}/Create$p.apiCreateitems.Create(id, model)
{id}/Update$p.apiUpdateitems.Update(id, model)
{id}/Upsert$p.apiUpsertitems.Upsert(id, model)サーバースクリプトは期限付き・記録テーブルのみ
{id}/Delete$p.apiDeleteitems.Delete(id)
{id}/BulkDelete$p.apiBulkDeleteitems.BulkDelete(id, json)スクリプト版は data.GridCheck: true で一覧のチェック状態を All・Selected に変換して送る(_api.js#L37-L62)
{id}/BulkUpsertなしなし
{id}/Importなしなし
{id}/Exportなしなし

サイト ​

Web APIスクリプトサーバースクリプト備考
{id}/GetSite$p.apiGetSiteitems.GetSite(id)
{id}/CreateSite$p.apiCreateSiteitems.Create(フォルダの ID, model)モデルは items.NewSite(参照タイプ) で作る。フォルダの ID を渡すとサイトとして作成される(ItemModel.cs#L1874-L1904)
{id}/UpdateSite$p.apiUpdateSiteitems.Update(サイト ID, model)変更履歴の扱いが API と違う(サイト更新時の変更履歴)
{id}/DeleteSite$p.apiDeleteSiteitems.Delete(サイト ID)
{id}/CopySitePackage$p.apiCopySitePackageなし
{id}/SynchronizeSummariesなしなし
{id}/UpdateSiteSettingsなしなし
{id}/GetClosestSiteId$p.apiGetClosestSiteIditems.GetClosestSite(名前, 起点 ID)サイト名で SiteId を解決する

サーバースクリプトには、Web API に対応するものがないサイト検索・集計・モデル生成のメソッドもあります(ServerScriptModelApiItems.cs)。

メソッド内容
items.GetSiteByTitle(title) / items.GetSiteByName(siteName) / items.GetSiteByGroupName(siteGroupName)タイトル・サイト名・サイトグループ名でサイトを探す(配列を返す)
items.New() / items.NewIssue() / items.NewResult() / items.NewSite(referenceType)作成用の空のモデルを作る
items.Sum / Average / Max / Min(siteId, columnName, view)数値項目の集計
items.Count(siteId, view)件数
items.MaxDate / MinDate(siteId, columnName, view)日付項目の最大・最小

ユーザー・組織・グループ ​

Web APIスクリプトサーバースクリプト
users/Get・users/{id}/Get$p.apiUsersGetusers.Get(id)、users.GetList(view, offset, pageSize)
users/Create$p.apiUsersCreateusers.Create(model)
users/{id}/Update$p.apiUsersUpdateusers.Update(id, model)
users/{id}/Delete$p.apiUsersDeleteなし
users/Importなしなし
depts/Get・depts/{id}/Get$p.apiDeptsGetdepts.Get(id)
depts/Create$p.apiDeptsCreatedepts.Create(model)
depts/{id}/Update$p.apiDeptsUpdatedepts.Update(id, model)
depts/{id}/Delete$p.apiDeptsDeleteなし
depts/Importなしなし
groups/Get・groups/{id}/Get$p.apiGroupsGetgroups.Get(id)
groups/Create$p.apiGroupsCreategroups.Create(model)
groups/{id}/Update$p.apiGroupsUpdategroups.Update(id, model)
groups/{id}/Delete$p.apiGroupsDeleteなし
groups/Importなしなし

サーバースクリプトからは、ユーザー・組織・グループのどれも削除できません(ServerScriptModelUsers.cs、ServerScriptModelDepts.cs、ServerScriptModelGroups.cs)。

取得できる項目の違い ​

スクリプトの $p.apiUsersGet などは Web API をそのまま呼ぶので、Web API と同じ項目が返ります。サーバースクリプトの users.Get()・depts.Get()・groups.Get() は専用のモデルを返し、項目が限られます。

対象サーバースクリプトで取れる項目追加のメソッド
ユーザー(ServerScriptModelUserModel.cs)UserId、DeptId、LoginId、Name、UserCode、TenantManager、ServiceManager、Disabled、拡張項目なし
組織(ServerScriptModelDeptModel.cs)DeptId、DeptCode、DeptName、Body、Disabled、拡張項目GetMembers()(所属ユーザー)
グループ(ServerScriptModelGroupModel.cs)GroupId、GroupName、Body、Disabled、拡張項目GetMembers()、ContainsDept(id)、ContainsUser(id)、GetChildren()、ContainsChild(id)

メールアドレスや姓・名など、ここにない項目が必要なときは Web API(スクリプトなら $p.apiUsersGet)を使います。ログイン中のユーザー自身の情報なら、スクリプトでは $p.userId() などのシステム変数、サーバースクリプトでは context から取れます(スクリプトで使えるシステム変数)。

その他の API ​

Web APIスクリプトサーバースクリプト備考
extended/SqlなしextendedSql.ExecuteDataSet / ExecuteTable / ExecuteRow / ExecuteScalar / ExecuteNonQuery(name, params)拡張 SQL の活用
items/{id}/OutgoingMails/Send$p.apiSendMailなしサーバースクリプトの notifications はサイトの通知設定を使って送る別の仕組み
sessions/Get・Set・Deleteなしなしセッション間のデータ共有。同じリクエスト内のサーバースクリプト間なら context.UserData で値を渡せる
binaries/{guid}/Get・GetStream・Uploadなしなしファイルのみのアップロード
extensions/Get・Create・{id}/Update・{id}/DeleteなしなしExtensions テーブル
tenants/*、utility/GetLicenseInfo、backgroundtasks/RebuildSearchIndexesなしなし

関連ページ ​

変更履歴

第2版記事の確認版を繰り返す表現を整理する
第1版サイト設定の変更履歴・拡張 SQL の外部 DB 接続・サイト名の解決・API ラッパー・ApiVersion の解説と、関連する改修・設計メモを追加