イントロ

独自のカスタマイズやその他の目的でRESTfulAPIとしてBioStar2 New Local APIを使用する場合は、この記事を参照してください。この記事では、C#コンソールアプリケーションによるBioStar 2 New Local APIの基本的な使用法について説明します。  

 


機能

この記事では、以下の機能について説明します。

  1. ログイン
  2. ユーザー検索
  3. ユーザー追加
  4. アクセスグループにユーザーを追加
  5. ログデータの取得
  6. 順序でログデータの取得

 

この記事では、API関数を呼び出して、BioStar2サーバーに登録されているユーザーを検索する方法を確認します。ほとんどの場合、[GET]呼び出しはサーバーから情報を取得するだけなので、パラメータは含まれません。サーバーのユーザー情報を取得する[GET] / users呼び出しも、パラメーターの入力が必要ありません。


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

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

 


Part 1. API呼び出し

 

[GET]: /users

 

Part 2. レスポンスモデル

{

UserCollection  Res____UserCollection____6___C{

total       string

example: 8

@desc: User Total

 

rows      [{

user_id string

example: 2

@desc: User Id

 

name    string

example: 11

@desc: User Name

 

gender string

example: 0

@desc: User Gender

 

photo_exists     boolean

example: false

@desc: Use User Photo Exists

 

pin_exists           boolean

example: false

@desc: Use User Pin Exists

 

password_exists              boolean

example: false

@desc: Use User Password Exists

 

updated_count string

example: 1

@desc: User Updated Count

 

last_modified    string

example: 25

@desc: User Last Modified

 

start_datetime string

example: 2001-01-01T00:00:00.00Z

@desc: User Start Datetime

 

expiry_datetime              string

example: 2030-12-31T23:59:00.00Z

@desc: User Expiry Datetime

 

security_level    string

example: 0

@desc: User Security Level

 

display_duration              string

example: 0

@desc: User Display Duration

 

display_count    string

example: 0

@desc: User Display Count

 

inherited             boolean

example: false

@desc: Use User Inherited

 

user_group_id  {

id            string

example: 1010

@desc: User Group Id

 

name    string

example: 123

@desc: User Group Id Name

 

}

disabled               boolean

example: false

@desc: Use User Disabled

 

expired boolean

example: false

@desc: Use User Expired

 

fingerprint_template_count       string

example: 1

@desc: User Fingerprint Template Count

 

face_count         string

example: 0

@desc: User Face Count

 

card_count         string

example: 0

@desc: User Card Count

 

access_groups  [{

id            string

example: 3

@desc: Access Group Id

 

name    string

example: as

@desc: Access Group Name

 

}]

access_groups_in_user_group   [{

id            string

example: 3

@desc: Access Groups In User Group Id

 

name    string

example: as

@desc: Access Groups In User Group Name

 

}]

}]

}

Response            Res____Response___C{

code      string

example: 0

desc : Response.code reference: C:\Program Files\BioStar 2(x64)\nginx\html\resources\messages_en.properties(ACB_ERROR_CODE.XXXXX)

 

link         string

example: https://support.supremainc.com/en/support/home

desc: Link URL

 

message              string

example: Success

desc: Message

 

}

httpResponseStatus       Res____httpResponseStatus___Cinteger

example: 200

desc: HTTP Status Code

 

}


[レスポンス: エラー]

{

    "Response": {

        "code": "10",

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

        "message": "Login required."

    }

}

[レスポンス: 成功]

{

    "UserCollection": {

        "total": "8",

        "rows": [

            {

                "user_id": "1",

                "name": "Administrator",

                "gender": "0",

                "email": "[email protected]",…

   "Response": {

        "code": "0",

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

        "message": "Success"

    }

}

 


Part 3. コンソールユーザー検索の例

 

[ユーザー検索ソースコード] 

static async void ListUsers()

        {

            if (sessionID == null)

            {

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

                return;

            }

 

            CookieContainer cookieContainer = new CookieContainer();

 

            HttpClientHandler handler = new HttpClientHandler();

            handler.CookieContainer = cookieContainer;

 

            HttpClient client = new HttpClient(handler);

 

            client.DefaultRequestHeaders.Add("bs-session-id", sessionID);

            cookieContainer.Add(new Uri("https://127.0.0.1"), new Cookie("bs-session-id", sessionID));

            HttpResponseMessage httpResponse = client.GetAsync("https://127.0.0.1/api/users").Result;

 

 

            if (httpResponse.IsSuccessStatusCode == true)

            {

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

                //Console.WriteLine(httpResponseBody);

                dynamic obj = JsonConvert.DeserializeObject(httpResponseBody);

                Console.WriteLine("**** USER ID LIST: ****");

                int UserTotal = obj.UserCollection.total;

                for (int i = 0; i < UserTotal; i++)

                {

                       Console.WriteLine(obj.UserCollection.rows[i].user_id + "        " + obj.UserCollection.rows[i].name);

                }

            }

            else

            {

                Console.WriteLine("Listing Users Failed");

                   Console.WriteLine(httpResponse.ToString());

            }

        }

 

 

[ユーザー検索成功] 

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

 

*ソースコードは各ユーザーの2つの値のみを出力するため、ユーザーIDとユーザー名称のみを出力します。

 


Part 4.  Postman経由でユーザー検索 

 

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

*他のAPI呼び出しでのAPIの使用を認証するには、LoginAPI呼び出しのレスポンスヘッダーの「be-session-id」値を入力してください。

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


[リクエスト例] 

 

[レスポンス例: body] 

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