Introducción

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 cubrirá el uso más básico de la aplicación de consola BioStar 2 New Local API by C#.

 

Esta es solo una aplicación de muestra hecha para aquellos que podrían necesitar usar la Nueva API Local de BioStar 2. Es una aplicación de consola de Visual C#.

 

Funciones

Este artículo cubrirá las siguientes funciones:

  1. Iniciar sesión
  2. Buscar usuarios
  3. Crear usuarios
  4. Crear usuarios con access group
  5. Recuperar datos de registro
  6. Recuperar datos de registro con el pedido por

 

A través de este artículo, puede aprender a llamar a una función de API para recuperar los datos de registro dentro del período de tiempo desde y hasta el momento de su elección. Además, también tendrá que aclarar el número de registros que desea recuperar en el cuerpo de solicitud de la llamada.

 

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.

 

Parte 1. Llamada a la API y parámetros

 

[POST]: /events/search

[Parámetros]

Nombre

Tipo

*M/O

Explicación

...

 

 

 

límite

entero

O

# de resultados que desea buscar

condiciones-columna

cuerda

O

Palabra clave para buscar['datetime','device_id.id','door_id.id','event_type_id.code','user_group_id.id','user_id.user_id']

Condiciones-valores

Matriz de cadenas

O

Dos matrices DateTime para el período del evento, la hora de finalización debe ser mayor que la hora de inicio. *Fecha y hora en UTC en formato ISO-8601 (por ejemplo, 2015-06-10T02:14:05.268Z)

Condiciones-operador

entero

O

desc: Operador de condición[

IGUAL : 0,

NOT_EQUAL : 1,

CONTIENE : 2,

ENTRE : 3,

COMO : 4,

MAYOR : 5,

MENOS : 6]

* M – Obligatorio, O – Opcional

 

Parte 2. Cuerpo de solicitud y modelo de respuesta

[Ejemplo de modelo de valor/parámetros]

{

"Consulta": {

"límite": 100,

"condiciones": [

{

"columna": "fecha y hora",

"operador": 3,

"valores": [

"2021-08-01T15:00:00.000Z",

"2021-08-02T14:59:59.000Z"

]

}

]

}

}

*"límite": 100  indica que solo vería 100 registros en la respuesta como resultado de la llamada a la API. Puede establecer este valor en consecuencia, ya que recuperar una gran cantidad de datos puede causar retrasos o bloqueos del servidor.

*"columna": DateTime  indica que ordenaría los registros por el valor DateTime de los registros. Por ejemplo, solo verá los registros de 2021-08-01T15:00:00.000Z a 2021-08-02T14:59:59.000Z.

*Si lo cambia a "columna": id u otros valores,  puede ordenar los registros por su id u otros valores en consecuencia.

 

[Respuesta: Exitosa]

{

"EventCollection": {

"filas": [

{

"id": "133",

"server_datetime": "2021-08-02T13:08:27.00Z",

"datetime": "2021-08-02T04:08:30.00Z",

"índice": "346",

"user_group_id": {

"id": "0",

"nombre": ""

},

"device_id": {

"id": "939271697",

"nombre": "BioStation A2 939271697 (192.168.13.132)"

},

"event_type_id": {

"código": "20736"

},

"door_id": [

{

"id": "4",

"nombre": "Puerta1"

}

],

"is_dst": "0",

"zona horaria": {

"mitad": "0",

"hora": "9",

"negativo": "0"

},

"user_update_by_device": "falso",

"pista": "162787731009392716970000000346",

"user_id": {

"photo_exists": "falso"

}

},

.

*sugerencia: un valor de índice en cada tabla (registro mensual) en la base de datos de CA. A partir de los datos de registro 1er en la tabla, el número aumenta en 1 por cada nuevo dato de registro.

 

* Con 'pista', puede comprender que ciertos registros vienen después / antes de algunos registros, ya que puede compararlos.

 

Parte 3. Ejemplo de recuperación de registros de consola

 

[Código fuente del método Retrieve Logs]

static async void GetLogTask()

{

if(sessionID ==  null)

{

Console.WriteLine("¡Primero debe iniciar sesión!" );

volver;

}

 

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(new  Uri("https://127.0.0.1"),  new  Cookie("bs-session-id",sessionID));

string resourceAddress =  "https://127.0.0.1/api/events/search";

Console.WriteLine("¿Cuántos resultados desea ver?" );

límite de cadena = Console.ReadLine();

string startTime =  "1970-01-01T00:00:00Z";

string endTime = DateTime.UtcNow.ToString("aaaa-MM-ddTHH:mm:ssZ");

 

DateTime dtLatestLogTime = nuevo  DateTime(1970, 1, 1);

 

JavaScriptSerializer serializer = nuevo  JavaScriptSerializer();

                

string payload2 =  "{ \"Query\": { \"limit\": " + limit +  ", \"conditions\": [ { \"column\": \"datetime\", \"operator\": 3, \"values\": [ \""  + startTime +  "\", \""  + endTime +  "\" ] } ] }}";

Console.WriteLine(payload2);

 

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

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

 

if (httpResponse.IsSuccessStatusCode ==  true)

{

Console.WriteLine("Se ha logrado recuperar el registro de " + startTime + " a "  + endTime);

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

Console.WriteLine(httpResponseBody);

obj dinámico = JsonConvert.DeserializeObject(httpResponseBody);

Console.WriteLine("*************** LOG("+limit+") : ***********"");

Console.WriteLine("** LogID ********* DateTime ********** DeviceID **

para (int  i = 0; i < Int16.Parse(limit); i++)

{

Console.WriteLine(obj. EventCollection.rows[i].id + " "  + obj. EventCollection.rows[i].datetime +  " " + obj. EventCollection.rows[i].device_id.id +  " " + obj. EventCollection.rows[i].device_id.name +  " " + obj. EventCollection.rows[i].event_type_id.code);

}

System.Threading.Thread.Sleep(1000);

}

más

{

Console.WriteLine("Error de recuperación de registros de " + startTime + " a "  + endTime);

Console.WriteLine(httpResponse.ToString());

}

            

}

 

[Después de recuperar registros correctamente: solo logró ver algunos valores de los registros]

Interfaz gráfica de usuario

Descripción generada automáticamente con poca confianza

 

 

 

 

Parte 4. Recuperar registros 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]

Interfaz gráfica de usuario, aplicación

Descripción generada automáticamente 

 

[Ejemplo de respuesta: cuerpo]

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

자동 생성된 설명