独自のカスタマイズやその他の目的でRESTfulAPIとしてBioStar2New Local APIを使用する場合は、この記事を参照してください。 この記事は、新しいローカルAPIを使用してBioStar2のアクセスレベルを検索するのに役立ちます。
この記事には、BioStar 2 NewLocalAPIを使用する必要がある可能性のあるユーザー向けに作成されたサンプルアプリケーションの「検索アクセスレベル」の部分が含まれています。 これは、Visual C#コンソールアプリケーションです。
API呼び出し用に構築されたC#プログラムのサンプルコードをよく見てください。 ソースコードをコピーして貼り付けるだけで、独自の統合で同じ機能を使用できます。
また、RESTfulAPI呼び出しに使用されるプログラムであるPostmanを介してAPI関数を呼び出す方法も確認できます。
*始める前に
アクセスレベルに入る前に、アクセスグループについて知っておく必要があります。 アクセスグループは、アクセスレベルよりも高い概念です。 アクセスグループは、ユーザーグループとアクセスレベルで構成されています。
Part 1. APIコール&パラメーター
- アクセスレベルを検索する方法
メソッド | API | 目的 | パラメーター |
GET | /api/access_levels | BioStar2のすべてのアクセスレベルを検索します。 | *以下を確認 |
[GET] /api/access_levels
[パラメーター]
名称 | タイプ | *M/O | 説明 | パラメータータイプ |
Limit | String | O | Number of results |
|
Offset | String | O | Result offset |
|
Order_by | String | O | Order by |
|
Query | String | O | Number of results (from the last value) |
|
Total | String | O |
|
|
* M – 必須, O – オプション
Part 2. リクエストボディ&レスポンスモデル
[例バリュー/パラメーターモデル]
|
[レスポンスモデル]
{ "AccessLevelCollection": { "total": "0" }, "Response": { "code": "1003", "link": "https://support.supremainc.com/en/support/home", "message": "Success" }, "httpResponseStatus": 200 } |
[レスポンス: 失敗]
{ "Response": { "code": "10", "link": "https://support.supremainc.com/en/support/home", "message": "Login required." } } |
[レスポンス: 成功]
{ "AccessLevelCollection": { "total": "7", "rows": [ { "id": "1", "name": "All", "description": "", "access_level_items": [ { "id": "14", "doors": [ { "id": "32", "name": "Test Door" } ], "schedule_id": { "id": "1", "name": "Always" } } ] }, { "id": "3", "name": "lvl_test1", "description": "" }, { "id": "15", "name": "0819 Access Level", "description": "Created on 2021-08-19" }, { "id": "16", "name": "New Access Level", "description": "New Access Level Desc" }, { "id": "17", "name": "Console Access Level", "description": "Console made this Access Level", "access_level_items": [ { "id": "12", "schedule_id": { "id": "1", "name": "Always" } } ] }, { "id": "18", "name": "as", "description": "string", "access_level_items": [ { "id": "13", "schedule_id": { "id": "1", "name": "Always" } } ] }, { "id": "20", "name": "as2", "description": "Console made this Access Level" } ] }, "Response": { "code": "0", "link": "https://support.supremainc.com/en/support/home", "message": "Success" } } |
Part 3. アクセスレベル検索コンソール例
[アクセスレベル検索メソッドソースコード]
static async void SearchAccessLevels() { Console.WriteLine("*****SearchAccessLevels Task Started*****"); CookieContainer cookieContainer = new CookieContainer();
HttpClientHandler handler = new HttpClientHandler(); handler.CookieContainer = cookieContainer;
HttpClient httpClient = new HttpClient(handler);
HttpClient client = new HttpClient(handler); httpClient.DefaultRequestHeaders.Add("bs-session-id", sessionID); cookieContainer.Add(new Uri(BioStarIP), new Cookie("bs-session-id", sessionID)); string resourceAddress = BioStarIP + "/api/access_levels";
JavaScriptSerializer serializer = new JavaScriptSerializer();
HttpResponseMessage httpResponse = httpClient.GetAsync(resourceAddress).Result;
if (httpResponse.IsSuccessStatusCode == true) { string httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); Console.WriteLine(httpResponseBody); dynamic obj = JsonConvert.DeserializeObject(httpResponseBody); Console.WriteLine("**** ACCESS LEVEL LIST: ****"); int UserTotal = obj.AccessLevelCollection.total; for (int i = 0; i < UserTotal; i++) { Console.WriteLine(obj.AccessLevelCollection.rows[i].id + " " + obj.AccessLevelCollection.rows[i].name); } } else { Console.WriteLine("Search Access Level Failed."); Console.WriteLine(httpResponse.ToString()); } } |
[アクセスレベルの検索に成功した後]
Part 4. Postmanを介してアクセスレベルを検索する
[リクエスト例: ヘッダー]
*他のAPI呼び出しでのAPIの使用を認証するには、LoginAPI呼び出しの応答ヘッダーの「be-session-id」値を使用する必要があります。
[リクエスト例]
*リクエスト本文には何も必要ありません
[リクエスト例: ボディ]