独自のカスタマイズやその他の目的でRESTfulAPIとしてBioStar2New Local APIを使用する場合は、この記事を参照してください。 この記事は、新しいローカルAPIを使用してBioStar2のアクセスレベルを検索するのに役立ちます。


この記事には、BioStar 2 NewLocalAPIを使用する必要がある可能性のあるユーザー向けに作成されたサンプルアプリケーションの「検索アクセスレベル」の部分が含まれています。 これは、Visual C#コンソールアプリケーションです。

 

API呼び出し用に構築されたC#プログラムのサンプルコードをよく見てください。 ソースコードをコピーして貼り付けるだけで、独自の統合で同じ機能を使用できます。


また、RESTfulAPI呼び出しに使用されるプログラムであるPostmanを介してAPI関数を呼び出す方法も確認できます。

*始める前に

アクセスレベルに入る前に、アクセスグループについて知っておく必要があります。 アクセスグループは、アクセスレベルよりも高い概念です。 アクセスグループは、ユーザーグループとアクセスレベルで構成されています。

 


Part 1. APIコール&パラメーター 


  1. アクセスレベルを検索する方法

 

メソッド

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」値を使用する必要があります。

텍스트, 모니터, 스크린샷, 화면이(가) 표시된 사진 
자동 생성된 설명

 

[リクエスト例] 

 

*リクエスト本文には何も必要ありません


[リクエスト例: ボディ] 

텍스트, 스크린샷, 모니터, 화면이(가) 표시된 사진 
자동 생성된 설명