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.
Parte 1. Llamada a la API y parámetros
- 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]