APIを使用して「サイト名検索」で該当サイトに最も近いサイトIDを取得することができます。
■前提条件
本機能はサイトの「サイト名」を検索します。あらかじめサイト名を設定してください。
※サイトの「タイトル」ではありませんので注意ください。
<POINT>
Shelterでは複数のサイトで同一の名称を設定することができますが、「サイト名検索」機能では同一サイト名のサイトが複数存在する場合は、使用者が望むサイトが検索されない可能性があります。「サイト名検索」を使用する場合はサイト名を重複しないように運用してください。
■事前準備
APIの操作を行う前にAPIキーの作成を実施してください。
また、この機能はテナント管理者でないと行えないため、ユーザ管理からテナント管理者の設定を行ってください。
■リクエスト
下記のリクエスト形式で、jsonデータを送信します。
<設定項目>
設定項目 | 値 |
---|---|
HTTPメソッド | POST |
Content-Type | application/json |
文字コード | UTF-8 |
URL | https://ks01.shelterdb.net/api/items/{サイトID}/getclosestsiteid {サイトID}には、サイト検索を開始する対象のサイトを指定してください。 |
Body | 以下のjsonデータを参考のこと |
<jsonデータ>
{ "ApiVersion": "1.1", "ApiKey": "345yuAjA6789dA09d8uj6...", "FindSiteNames":["SiteName1","SiteName2"] }
FindSiteNamesについて
検索したい対象のサイト名を配列で指定します。
以下の例ではサイト名が"ParentSite","HideSite"を検索します。
<jsonデータ>
{ "ApiVersion": 1.1, "ApiKey": "345yuAjA6789dA09d8uj6...", "FindSiteNames":["ParentSite","HideSite"] }
■レスポンス
検索対象サイト名と対となるSiteIdが返されます。
見つからなかった場合またはアクセス権が無い場合は-1を返却します。
Response部分のデータのレイアウトはこちらを参照してください。
{ "SiteId": 12345, "Data": [ { "SiteName": "ParentSite", "SiteId": 12344 }, { "SiteName": "HideSite", "SiteId": -1 } ] }
■検索の順序
以下の説明内では言うサイトとは、フォルダ・期限付きテーブル・記録テーブル・Wiki・ダッシュボードの総称を指します。
サイト名が同名のサイトが同一階層に複数あった場合はどちらが検索されるか不定となるため、期待するサイトが検索されない可能性があります。
- 自サイトが検索サイト名の場合は自サイトのIDを返す
- 自サイトと同じ階層のサイト一覧から検索サイト名が見つかった場合はそのサイトのIDを返す
- 自サイトと同じ階層でフォルダがある場合はそのフォルダ内を深さ優先で検索を行い、
検索サイト名が見つかった場合がそのサイトのIDを返す - 「3」で自サイト以下に該当サイトが無い場合は自サイトより一階層上に遷移し、
一階層上のサイト一覧から検索サイト名が見つかった場合はそのサイトのIDを返す - 以降、同様に2-4の処理を自サイトを現在サイトと読み替えて繰り返し検索処理を続け、
検索サイト名が見つかった場合はそのサイトのIDを返す - 全てのサイトを探索して見つからない場合は-1を返す
検索例)
起点サイト(No) | 検索サイト名 | 検索結果サイトNo | 備考 |
---|---|---|---|
課題管理(7) | 課題管理 | 7 | 自サイトである |
新規テーブル1(8) | 課題管理 | 7 | 同階層にある |
新規テーブル1(8) | 商談 | 11 | 同階層にない→自階層の下階層(9)にある |
新規テーブル1(8) | WBS | 3 | 同階層にない→自階層の下階層(9)にない→自階層の上階層(2)にある |
新規テーブル1(8) | 店舗一覧 | 15 | 同階層にない→自階層の下階層にない→自階層の上階層(2)にない→上階層(2)の下階層(14)にある |