独自のカスタマイズやその他の目的でRESTfulAPIとしてBioStar2New Local APIを使用する場合は、この記事を参照してください。 この記事は、新しいローカルAPIを使用してBioStar2でアクセスレベルを作成するのに役立ちます。
この記事には、BioStar 2 NewLocalAPIを使用する必要がある可能性のあるユーザー向けに作成されたサンプルアプリケーションの「CreateAccessLevels」の部分が含まれています。 これは、Visual C#コンソールアプリケーションです。
API呼び出し用に構築されたC#プログラムのサンプルコードをよく見てください。 ソースコードをコピーして貼り付けるだけで、独自の統合で同じ機能を使用できます。
また、RESTfulAPI呼び出しに使用されるプログラムであるPostmanを介してAPI関数を呼び出す方法も確認できます。
*始める前に
アクセスレベルに入る前に、アクセスグループについて知っておく必要があります。 アクセスグループは、アクセスレベルよりも高い概念です。 アクセスグループは、ユーザーグループとアクセスレベルで構成されています。
Part 1. APIコール&パラメーター
- アクセスレベルを作成する方法
メソッド | 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」値を使用する必要があります。
[リクエスト例]
*アクセスレベルの作成にはスケジュールとドアが必要です
[レスポンス例: ボディ]