独自のカスタマイズやその他の目的でRESTfulAPIとしてBioStar2 New Local APIを使用する場合は、この記事を参照してください。この記事では、BioStar 2 New Local APIを使用するユーザー向けに作成されたC#サンプルアプリケーションの「ドア作成」を確認いただけます。

 

 API呼び出し用に作成されたC#プログラムのサンプルコードをご覧ください。ソースコードをコピーして貼り付けて同じ機能を使用できます。

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


 

Part 1. API呼び出しとパラメーター 

 

  1. ドアを作成する方法

 

Method

API

目的

パラメーター

POST

 

/api/doors

ドア作成

*以下のテーブルをご確認ください。

 

 

[POST]: /api/doors

[パラメーター] 

名称

タイプ

*M/O

説明

バリュー

Exit_button_input_id.device_id.id

Int

O

退室端末ID

 

Exit_button_input_id.device_id.name

String

O

退室端末名称

Base64

Exit_button_input_id.input_index

Int

O

退室入力index

 

Exit_button_input_id.type

String

O

退室入力タイプ

 

Exit_button_input_id.supervised

String

O

退室スーパーバイズド

 

Sensor_input_id.device_id.id

Int

O

センサー端末ID

 

Sensor_input_id.device_id.name

String

O

センサー端末名称

Base64

Sensor_input_id..input_index

Int

O

センサー入力index

 

Sensor_input_id.type

String

O

センサー入力タイプ

 

Sensor_input_id.supervised

String

O

センサースーパーバイズド

 

Antitailsensor_input_id.device_id

array

O

共ずれ防止センサー入力端末ID

 

Antitailsensor_input_id.type

String

O

共ずれ防止センサー入力タイプ

 

Open_duration

Int

O

オープン時間

 

Dual_authentication.device

String

O

端末タイプ

1- 入室端末
2- 退室端末

Dual_authentication.approval_type

String

O

承認順番

1- 最後

Dual_authentication.timeout

Int

O

タイムアウト時間

例:15

Dual_authentication.schedule_id.id

String

O

スケジュールID

例:1

Dual_authentication.approval_groups

String

O

承認グループ

 

Open_once

Boolean

O

ドアを閉じた時の施錠

例:false

Unconditional_lock

Boolean

O

自動ドア使用

Default: false

Door_group_id.id

Int

O

ドアグループID

Default: 0

Door_group_id.name

String

O

ドアグループ名称

例:すべてのドア

Entry_device_id.id

Int

M

入室端末ID

 

Entry_device_id.name

String

M

入室端末名称

Base64

Entry_device_id.device_type_id

Int

M

端末タイプID

BIOENTRY_PLUS : 1,

BIOENTRY_W : 2,

BIOLITE_NET : 3,

XPASS : 4,

XPASS_S2 : 5,

ENTRY_MAX : 5,

SECURE_IO_2 : 6,

DOOR_MODULE_20 : 7,

BIOSTATION_2 : 8,

BIOSTATION_A2 : 9,

FACESTATION_2 : 10,

IO_DEVICE : 11,

BIOSTATION_L2 : 12,

BIOENTRY_W2 : 13,

CORESTATION_40 : 14,

OUTPUT_MODULE : 15,

INPUT_MODULE : 16,

BIOENTRY_P2 : 17,

BIOLITE_N2 : 18,

XPASS2 : 19,

XPASS_S3 : 20,

BIOENTRY_R2 : 21,

XPASS_D2 : 22,

DOOR_MODULE_21 : 23,

XPASS_D2_KEYPAD : 24,

FACELITE : 25,

XPASS2_KEYPAD : 26,

MAX = BS2_DEVICE_TYPE_XPASS2_KEYPAD, : 26,

UNKNOWN : 255,

Trigger_actions.input_event_id

String

O

コード

例:22528

Trigger_actions.output_device_id.id

Int

O

端末ID

 

Trigger_actions.output_device_id.name

String

O

端末名称

Base64

Trigger_actions.output_device_id.device_type_id.id

Int

O

端末タイプID

BIOENTRY_PLUS : 1,

BIOENTRY_W : 2,

BIOLITE_NET : 3,

XPASS : 4,

XPASS_S2 : 5,

ENTRY_MAX : 5,

SECURE_IO_2 : 6,

DOOR_MODULE_20 : 7,

BIOSTATION_2 : 8,

BIOSTATION_A2 : 9,

FACESTATION_2 : 10,

IO_DEVICE : 11,

BIOSTATION_L2 : 12,

BIOENTRY_W2 : 13,

CORESTATION_40 : 14,

OUTPUT_MODULE : 15,

INPUT_MODULE : 16,

BIOENTRY_P2 : 17,

BIOLITE_N2 : 18,

XPASS2 : 19,

XPASS_S3 : 20,

BIOENTRY_R2 : 21,

XPASS_D2 : 22,

DOOR_MODULE_21 : 23,

XPASS_D2_KEYPAD : 24,

FACELITE : 25,

XPASS2_KEYPAD : 26,

MAX = BS2_DEVICE_TYPE_XPASS2_KEYPAD, : 26,

UNKNOWN : 255,

Trigger_actions.output_device_id.status

String

O

状態

例:2

Trigger_actions.output_device_id.rs485.mode

String

O

RS485モード

例:1

Trigger_actions.output_device_id.rs485.channels

array

O

Channels

 

Trigger_actions.output_device_id.rs485.parent_rs485.info

String

O

親RS485情報

 

Trigger_actions.output_device_id.device_group_id.id

Int

O

端末グループID

 

Trigger_actions.output_device_id.device_group_id.name

String

O

端末グループ名称

 

Trigger_actions.output_device_id.version.firmware

String

O

FWバージョン

例:1.1.0

Trigger_actions.output_device_id.version.product_name

String

O

製品名

例:BLN2-OAB

Trigger_actions.output_device_id.lan.ip

String

O

IP

例:192.168.12.168

Trigger_actions.output_device_id.lan.connection_mode

String

O

接続モード

例:0

Trigger_actions.output_device_id.tna..mode

String

O

勤怠モード

例:3

Trigger_actions.output_device_id.tna..required

Boolean

O

勤怠必須

例:false

Trigger_actions.output_device_id.tna..fixed_code

String

O

勤怠固定コード

 

Trigger_actions.output_device_id.tna..tna_keys.enabled

Boolean

O

勤怠キー使用

 

Trigger_actions.output_device_id.tna..tna_keys.label

String

O

勤怠キーラベル

 

Trigger_actions.output_device_id.tna..tna_keys.icon

String

O

勤怠キーアイコン

 

Trigger_actions.output_device_id.slave_devices

Array

O

スレーブ端末

 

Trigger_actions.output_device_id.packet_version

Int

O

パケットバージョン

 

Trigger_actions.output_device_id.iconCls

String

O

アイコンクラス

例:dvBioLiteN2 sync_error

Trigger_actions.output_device_id.deviceData.id

Int

O

端末ID

例:635

Trigger_actions.output_device_id.deviceData.name

String

O

端末名称

Base64

Trigger_actions.output_device_id.deviceData.device_type_id.id

Int

O

端末タイプID

BIOENTRY_PLUS : 1,

BIOENTRY_W : 2,

BIOLITE_NET : 3,

XPASS : 4,

XPASS_S2 : 5,

ENTRY_MAX : 5,

SECURE_IO_2 : 6,

DOOR_MODULE_20 : 7,

BIOSTATION_2 : 8,

BIOSTATION_A2 : 9,

FACESTATION_2 : 10,

IO_DEVICE : 11,

BIOSTATION_L2 : 12,

BIOENTRY_W2 : 13,

CORESTATION_40 : 14,

OUTPUT_MODULE : 15,

INPUT_MODULE : 16,

BIOENTRY_P2 : 17,

BIOLITE_N2 : 18,

XPASS2 : 19,

XPASS_S3 : 20,

BIOENTRY_R2 : 21,

XPASS_D2 : 22,

DOOR_MODULE_21 : 23,

XPASS_D2_KEYPAD : 24,

FACELITE : 25,

XPASS2_KEYPAD : 26,

MAX = BS2_DEVICE_TYPE_XPASS2_KEYPAD, : 26,

UNKNOWN : 255,

Trigger_actions.output_device_id.deviceData.device_type_id.status

Int

O

状態

 

Trigger_actions.output_device_id.deviceData.device_type_id.rs485.mode

String

O

RS485モード

 

Trigger_actions.output_device_id.deviceData.device_type_id.rs485.channels

Array

O

Channels

 

Trigger_actions.output_device_id.deviceData.device_type_id.rs485.parent_rs485_info

String

O

親RS485情報

 

Trigger_actions.output_device_id.deviceData.device_type_id.device_group_id.id

Int

O

端末グループID

 

Trigger_actions.output_device_id.deviceData.device_type_iddevie_group_id.name

String

O

端末グループ名

 

Trigger_actions.output_device_id.deviceData.device_type_id.version.firmware

String

O

FWバージョン

例:1.1.0

Trigger_actions.output_device_id.deviceData.device_type_id.version.product_name

String

O

製品名

例:BLN2-OAB

Trigger_actions.output_device_id.deviceData.device_type_id.lan.ip

String

O

IP

 

Trigger_actions.output_device_id.deviceData.device_type_idlan.connection_mode

String

O

接続モード

 

Trigger_actions.output_device_id.deviceData.device_type_id.tna.mode

String

O

勤怠モード

 

Trigger_actions.output_device_id.deviceData.device_type_id.tna.required

String

O

勤怠必須

 

Trigger_actions.output_device_id.deviceData.device_type_id.tna.fixed_code

String

O

勤怠固定コード

 

Trigger_actions.output_device_id.deviceData.device_type_id.tna.tna_keys.enabled

Boolean

O

勤怠キー使用

 

Trigger_actions.output_device_id.deviceData.device_type_id.tna.tna_keys.label

String

O

勤怠ラベル

 

Trigger_actions.output_device_id.deviceData.device_type_id.tna.tna_keys.icon

String

O

勤怠アイコン

 

Trigger_actions.output_device_id.deviceData.device_type_id.slave_devices

Array

O

スレーブ端末

 

Trigger_actions.output_device_id.deviceData.device_type_id.packet_version

Int

O

パケットバージョン

 

Trigger_actions.output_device_id.deviceData.device_type_id.iconCls

String

O

アイコンクラス

 

Trigger_actions.output_device_id.sound

Boolean

O

音声

 

Trigger_actions.output_type

Int

O

出力タイプ

 

Trigger_actions.sound_index

Int

O

音声Index

 

Trigger_actions.stop_flag

Int

O

Stop Flag

 

Trigger_actions.$$hashKey

String

O

No Required

例:object:3207

Relay_output_id.device_id

Int

M

端末ID

 

Relay_output_id.relay_index

Int

M

リレー index

 

Open_timeout

Int

 

解錠タイムアウト

 

Name

String

M

名称

 

Door_anti_passback

Array

O

ドアアンチパスバック

 

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

 


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


[値/パラメータモデルの例 ]

{

  "Door": {

    "exit_button_input_id": {

      "device_id": {

        "id": 635,

        "name": "Base64: RDQQFJYAVUYvFXsEIzIQC1QYbodkHe..."

      },

      "input_index": 0,

      "type": "0",

      "supervised": ""

    },

    "sensor_input_id": {

      "device_id": {

        "id": 635,

        "name": "Base64: RDQQFJYAVUYvFXsEIzIQC1QYbodkHe..."

      },

      "input_index": 0,

      "type": "0",

      "supervised": ""

    },

    "antitailsensor_input_id": {

      "device_id": {},

      "type": "0"

    },

    "open_duration": 3,

    "dual_authentication": {

      "device": "1",

      "approval_type": "1",

      "timeout": 15,

      "schedule_id": {

        "id": "1"

      },

      "approval_groups": [

        null

      ]

    },

    "open_once": "false",

    "unconditional_lock": "true",

    "door_group_id": {

      "id": 1,

      "name": "All Doors"

    },

    "entry_device_id": {

      "id": 635,

      "name": "Base64: RDQQFJYAVUYvFXsEIzIQC1QYbodkHe...",

      "device_type_id": {

        "id": 18

      }

    },

    "trigger_actions": [

      {

        "input_event_id": {

          "code": "22528"

        },

        "output_device_id": {

          "id": 635,

          "name": "Base64: RDQQFJYAVUYvFXsEIzIQC1QYbodkHe...",

          "device_type_id": {

            "id": 18

          },

          "status": "2",

          "rs485": {

            "mode": "1",

            "channels": [

              null

            ],

            "parent_rs485_info": ""

          },

          "device_group_id": {

            "id": 1,

            "name": "All Devices"

          },

          "version": {

            "firmware": "1.1.0",

            "product_name": "BLN2-OAB"

          },

          "lan": {

            "ip": "192.168.12.165",

            "connection_mode": "0"

          },

          "tna": {

            "mode": "3",

            "required": "false",

            "fixed_code": "1",

            "tna_keys": [

              {

                "enabled": "false",

                "label": "",

                "icon": "0"

              }

            ]

          },

          "slave_devices": [

            null

          ],

          "packet_version": 2,

          "iconCls": "dvBioLiteN2 sync_error",

          "deviceData": {

            "id": 635,

            "name": "Base64: RDQQFJYAVUYvFXsEIzIQC1QYbodkHe...",

            "device_type_id": {

              "id": 18

            },

            "status": 2,

            "rs485": {

              "mode": "1",

              "channels": [

                null

              ],

              "parent_rs485_info": ""

            },

            "device_group_id": {

              "id": 1,

              "name": "All Devices"

            },

            "version": {

              "firmware": "1.1.0",

              "product_name": "BLN2-OAB"

            },

            "lan": {

              "ip": "192.168.12.165",

              "connection_mode": "0"

            },

            "tna": {

              "mode": "3",

              "required": "false",

              "fixed_code": "1",

              "tna_keys": [

                {

                  "enabled": "false",

                  "label": "",

                  "icon": "0"

                }

              ]

            },

            "slave_devices": [

              null

            ],

            "packet_version": 2,

            "iconCls": "dvBioLiteN2 sync_error"

          },

          "sound": true

        },

        "output_type": 2,

        "sound_index": 4,

        "stop_flag": 1,

        "$$hashKey": "object:3207"

      }

    ],

    "relay_output_id": {

      "device_id": {

        "id": 635

      },

      "relay_index": 0

    },

    "open_timeout": 3,

    "name": "d22",

    "door_anti_passback": {}

  }

}

 

[レスポンスモデル]

{

     "DoorCollection": {

       "total": "1",

       "rows": [

         {

           "id": "3",

           "name": "d22"

         }

       ]

     },

     "DeviceResponse": {

       "rows": [

         {

           "id": "541530960",

           "seq": "37",

           "command": "0x500(BS2_CMD_SET_DOOR)",

           "code": "64230"

         }

       ],

       "result": "false"

     },

     "Response": {

       "code": "0",

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

       }

}

 

[レスポンス: 成功]

{

     "DoorCollection": {

       "total": "1",

       "rows": [

         {

           "id": "34",

           "name": "Door3223"

         }

       ]

     },

     "Response": {

       "code": "0",

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

    "message": "Success"

     }

}

 


Part 3. ドア作成コンソール例

 

[ドア作成メソッドソースコード] 

static async void CreateDoor()

        {

            Console.WriteLine("*****CreateDoor Task Started******");

            if (sessionID == null)

            {

                Console.WriteLine("You must log in first!");

                return;

            }

            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/doors";

 

            JavaScriptSerializer serializer = new JavaScriptSerializer();

            Console.WriteLine("Enter Door Name: ");

            string name = Console.ReadLine();

            ListDevices();

            Console.WriteLine("Enter Relay Device ID: ");

            string RelayDeviceID = Console.ReadLine();

            string payload = "{{\"Door\":{\"door_group_id\":{\"id\":1,\"name\":\"AllDoors\"},\"entry_device_id\":{},\"relay_output_id\":{\"device_id\":{\"id\":" + RelayDeviceID + "},\"relay_index\":1},\"open_timeout\":3,\"name\":\"" + name + "\",\"door_anti_passback\":{}}}}";

            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 Door Successful.");

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

                   Console.WriteLine(httpResponseBody);

            }

            else

            {

                Console.WriteLine("Create Door Failed.");

                   Console.WriteLine(httpResponse.ToString());

            }

        }

 

[ドア作成成功] 

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

 

*ドア名入力

*端末リスト表示

*device_idでデバイスを選択して、リレーデバイスとしてドアに追加

 


Part 4. Postmanでドア作成

 

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

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

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


[リクエスト例] 

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

*リクエスト本文には必要なパラメータのみが記載されています

 

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

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