Si desea utilizar BioStar 2 New Local API como una API RESTful para su propia personalización u otros fines, simplemente puede consultar este artículo. Este artículo le ayudará a crear niveles de acceso en su BioStar 2 mediante el uso de la nueva API local.

 

Este artículo incluye una parte 'Crear niveles de acceso' de una aplicación de ejemplo creada para aquellos que podrían necesitar usar la nueva API local de BioStar 2. Es una aplicación de consola de Visual C#.

 

Asegúrese de echar un buen vistazo al código de ejemplo del programa de C# creado para llamadas a la API. Simplemente puede copiar y pegar el código fuente para usar la misma función en su propia integración.

 

También puede ver cómo llamar a las funciones de la API a través de Postman, que es un programa utilizado para las llamadas a la API RESTful.

 

*Antes de empezar

Antes de entrar en los niveles de acceso, debe conocer los grupos de acceso. Grupo de acceso es un concepto más alto que el nivel de acceso. El grupo de acceso se compone de grupos de usuarios y niveles de acceso.

 

Diagrama

Descripción generada automáticamente

 

Parte 1. Llamada a la API y parámetros


  

  1. Cómo crear para niveles de acceso

 

Método

API

Qué hace

Parámetros

EXPONER

/api/access_levels

Crear niveles de acceso en BioStar 2

*Consulta a continuación

 

[POST] /api/access_levels

[Parámetros]

Nombre

Tipo

*M/O

Explicación

Tipo de parámetro

Nombre

Cuerda

M

Nombre del grupo de acceso

 

Descripción

Cuerda

O

Descripción

 

Access_level_items.schedule_id.id

Cuerda

M

ID de programación

Ejemplo: 2

Access_level_items.schedule_id.name

Cuerda

M

Nombre del programación

Ejemplo: AS

Access_level_items.$$hashKey

Cuerda

O

No se requiere

Ejemplo: objeto: 2861

Access_level_items.puertas.id

Entero

M

Identificación de la puerta

 

Access_level_items.doors.name

Cuerda

M

Nombre de la puerta

 

* M – Obligatorio, O – Opcional

 

Parte 2. Cuerpo de solicitud y modelo de respuesta

 

[Ejemplo de modelo de valor/parámetros]

{

"AccessLevel": {

"nombre": "como",

"description": "cadena",

"access_level_items": [

{

"schedule_id": {

"id": "1",

"nombre": "Siempre"

},

 

"puertas": [

{

"id": 8,

"nombre": "puerta33"

}

]

}

]

}

}

* La creación del nivel de acceso requiere horario y puerta

 

[Modelo de respuesta]

{

"AccessLevel": {

"id": "3",

"nombre": "lvl_2"

},

"DeviceResponse": {

"filas": [

{

"id": "541530960",

"código": "64230"

}

],

"resultado": "falso"

},

"Respuesta": {

"código": "1003",

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

"message": "Éxito"

},

"httpResponseStatus": 200

}

 

[Respuesta: Fallo]

{

"Respuesta": {

"código": "10",

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

"message": "Se requiere inicio de sesión".

}

}

 

[Respuesta: Exitosa]

{

"AccessLevel": {

"id": "21",

"nombre": "AccessLevelAPI"

},

"DeviceResponse": {

"filas": [

{

"id": "541531089",

"código": "0"

}

],

"resultado": "verdadero"

},

"Respuesta": {

"código": "0",

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

"message": "Éxito"

}

}

 

Parte 3. Ejemplo de creación de niveles de acceso de la consola

 

[Crear código fuente del método de niveles de acceso]

static async void CreateAccessLevels()

{

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

CookieContainer cookieContainer = nuevo CookieContainer();

 

Controlador HttpClientHandler = nuevo HttpClientHandler();

Controlador. CookieContainer = cookieContainer;

 

HttpClient httpClient = nuevo HttpClient(controlador);

 

Cliente HttpClient = nuevo HttpClient(controlador);

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

cookieContainer.Add(nuevo URI(BioStarIP), nuevo Cookie("bs-session-id", sessionID));

string resourceAddress = BioStarIP + "/api/access_levels";

 

JavaScriptSerializer serializer = nuevo JavaScriptSerializer();

Console.WriteLine("Introduzca el NOMBRE del nivel de acceso: ");

nombre de cadena = Console.ReadLine();

Console.WriteLine("Introduzca la DESCRIPCIÓN del nivel de acceso: ");

descripción de cadena = Console.ReadLine();

SearchSchedules();

Console.WriteLine("Elija un ID de PROGRAMACIÓN: ");

string schedule = Console.ReadLine();

ListDoors();

Console.WriteLine("Elija un ID de PUERTA: ");

puerta de cadena = Console.ReadLine();

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

Console.WriteLine(carga útil);

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

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

 

if (httpResponse.IsSuccessStatusCode == true)

{

Console.WriteLine("Crear nivel de acceso correctamente.");

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

Console.WriteLine(httpResponseBody);

}

más

{

Console.WriteLine("Error al crear nivel de acceso");

Console.WriteLine(httpResponse.ToString());

}

}

 

[Después de crear el nivel de acceso correctamente]

 

텍스트이(가) 표시된 사진

자동 생성된 설명

* La creación del nivel de acceso requiere horario y puerta

 

 

Parte 4. Crear niveles de acceso a través de Postman

 

[Ejemplo de solicitud: Encabezados]

*Debe usar el valor 'be-session-id' del encabezado de respuesta de la llamada a la API de inicio de sesión para autenticar el uso de la API para otras llamadas a la API.

텍스트, 모니터, 스크린샷, 화면이(가) 표시된 사진

자동 생성된 설명

 

[Ejemplo de solicitud]

 텍스트, 스크린샷, 모니터이(가) 표시된 사진

자동 생성된 설명

* La creación del nivel de acceso requiere horario y puerta

 

[Ejemplo de respuesta: cuerpo]

텍스트이(가) 표시된 사진

자동 생성된 설명