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


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

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


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



*始める前に

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

 

 


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


  1. アクセスレベルを作成する方法

 

メソッド

API

目的

パラメーター

POST

/api/access_levels

BioStar 2でアクセスレベルを作成

*以下を確認

 

[POST] /api/access_levels

[パラメーター]

名称

タイプ

*M/O

説明

パラメータータイプ

Name

String

M

アクセスグループ名称

 

Description

String

O

説明

 

Access_level_items.schedule_id.id

String

M

スケジュールID

例: 2

Access_level_items.schedule_id.name

String

M

スケジュール名称

例: AS

Access_level_items.$$hashKey

String

O

必要なし

例: object: 2861

Access_level_items.doors.id

Integer

M

ドアID

 

Access_level_items.doors.name

String

M

ドア名称

 

* M – 必須, O – オプション

 

Part 2. リクエストボディ&レスポンスモデル

 

[例バリュー/パラメーターモデル]

{

  "AccessLevel": {

    "name": "as",

    "description": "string",

    "access_level_items": [

      {

        "schedule_id": {

          "id": "1",

          "name": "Always"

        },

 

        "doors": [

          {

            "id": 8,

            "name": "door33"

          }

        ]

      }

    ]

  }

}

*アクセスレベルの作成にはスケジュールとドアが必要です

 

[レスポンスモデル]

{

     "AccessLevel": {

       "id": "3",

       "name": "lvl_2"

     },

     "DeviceResponse": {

       "rows": [

         {

           "id": "541530960",

           "code": "64230"

         }

       ],

       "result": "false"

     },

     "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."

       }

}

 

[レスポンス: 成功]

{

    "AccessLevel": {

        "id": "21",

        "name": "AccessLevelAPI"

    },

       "DeviceResponse": {

           "rows": [

            {

                "id": "541531089",

                "code": "0"

            }

           ],

           "result": "true"

       },

       "Response": {

           "code": "0",

           "link": "https://support.supremainc.com/en/support/home",

        "message": "Success"

       }

}

 


Part 3. アクセスレベルの作成コンソール例

 

[アクセスレベルの作成メソッドのソースコード] 

static async void CreateAccessLevels()

        {

            Console.WriteLine("*****CreateAccessLevels 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();

            Console.WriteLine("Enter Access Level NAME: ");

            string name = Console.ReadLine();

            Console.WriteLine("Enter Access Level DESCRIPTION: ");

            string description = Console.ReadLine();

            SearchSchedules();

            Console.WriteLine("Choose a SCHEDULE ID: ");

            string schedule = Console.ReadLine();

            ListDoors();

            Console.WriteLine("Choose a DOOR ID: ");

            string door = Console.ReadLine();

            string payload = "{\"AccessLevel\": {\"name\": \"" + name + "\",\"description\": \"" + description + "\",\"access_level_items\": [{\"schedule_id\": { \"id\": \"" + schedule + "\"}, \"doors\": [{\"id\": " + door + "}]}]}}";

            Console.WriteLine(payload);

            StringContent sc = new StringContent(payload, Encoding.UTF8, "application/json");

            HttpResponseMessage httpResponse = httpClient.PostAsync(resourceAddress, sc).Result;

 

            if (httpResponse.IsSuccessStatusCode == true)

            {

                Console.WriteLine("Create Access Level Successful.");

                string httpResponseBody = await httpResponse.Content.ReadAsStringAsync();

                   Console.WriteLine(httpResponseBody);

            }

            else

            {

                Console.WriteLine("Create Access Level Failed.");

                   Console.WriteLine(httpResponse.ToString());

            }

        }

 

[アクセスレベルの作成に成功した後] 

 

텍스트이(가) 표시된 사진 
자동 생성된 설명

*アクセスレベルの作成にはスケジュールとドアが必要です

 

 

Part 4. Postmanを介してアクセスレベルを作成する

 

[リクエスト例: ヘッダー] 

*他のAPI呼び出しでのAPIの使用を認証するには、LoginAPI呼び出しの応答ヘッダーの「be-session-id」値を使用する必要があります。

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

 

[リクエスト例] 

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

*アクセスレベルの作成にはスケジュールとドアが必要です

 

[レスポンス例: ボディ] 

텍스트이(가) 표시된 사진 
자동 생성된 설명