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#.

 

Se puede acceder a la arrogancia de la nueva API local de BioStar 2 mediante la URL: https://{BioStar2 IP}/swagger/index.html#/

 

*La nueva API local de BioStar 2 es compatible con BioStar 2.7.10 y versiones posteriores.

 

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á la función resaltada a continuación:

  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 cómo llamar a una función API para iniciar sesión en su servidor BioStar 2. Al insertar su ID de usuario y contraseña de BioStar 2, puede tener fácilmente una autenticación para usar otras llamadas a la API. Por favor, preste atención a cómo administrar 'bs-session-id' después de realizar un inicio de sesión exitoso.

 

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]: /login

[Parámetros]

Grupo

Nombre

Tipo

*M/O

Explicación

Valor

Usuario

Login_id

cuerda

M

ID de inicio de sesión

 

 

contraseña

cuerda

M

Contraseña

 

* M – Obligatorio, O – Opcional

 

Parte 2. Cuerpo de solicitud y modelo de respuesta

[Ejemplo de modelo de valor/parámetros]

{

"Usuario": {

"login_id": "admin",

"contraseña": "qwer1234"

}

}

 

[Modelo de respuesta]

{

Res____User____272 de usuario{

user_id cadena

ejemplo: 1

desc: ID de usuario

 

cadena de nombre

ejemplo: Administrador

desc: Nombre

 

cadena de género

ejemplo: 1

@desc: Género del usuario

 

cadena de cumpleaños

ejemplo: 1977-10-08T04:00:00.00Z

@desc: Cumpleaños del usuario

 

photo_exists booleano

ejemplo: falso

desc: Comprobar foto

 

pin_exists booleano

ejemplo: falso

desc: Comprobar PIN

 

login_id cadena

ejemplo: admin

desc: ID de inicio de sesión

 

password_exists booleano

ejemplo: true

desc: Comprobar contraseña

 

updated_count cadena

ejemplo: 0

desc: Recuento de actualizaciones

 

last_modified cadena

ejemplo: 0

desc: Última modificación

 

start_datetime cadena

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

desc: Iniciar DateTime

 

expiry_datetime cadena de datos

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

desc: Fecha de caducidadTiempo

 

security_level cadena de trabajo

ejemplo: 0

desc: Nivel de seguridad

~

}

{

Respuesta Res____Response{

cadena de código

ejemplo: 1003

desc : Referencia de Response.code: C:\Archivos de programa\BioStar 2(x64)\nginx\html\resources\messages_en.properties(ACB_ERROR_CODE. XXXXX)

 

cadena de vínculo

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

desc: URL de enlace

 

cadena de mensaje

ejemplo: Éxito

desc: Mensaje

 

}

httpResponseStatus Res____httpResponseStatusinteger

ejemplo: 200

desc: Código de estado HTTP

}

 

[Respuesta: Fallo]

{

"Respuesta": {

"código": "101",

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

"message": "Error al iniciar sesión para un nombre de usuario o contraseña no válidos"

}

}

[Respuesta: Exitosa]

{

"Usuario": {

"user_id": "1",

"nombre": "Administrador",

"género": "0",

"photo_exists": "falso",

"pin_exists": "falso",

"login_id": "admin",

"password_exists": "verdadero",

"updated_count": "37",

"last_modified": "63",

"idx_last_modified": "24",

"start_datetime": "2001-01-01T00:00:00.00Z",

"expiry_datetime": "2030-12-31T23:59:00.00Z",

"security_level": "0",

~    },

"Respuesta": {

"código": "0",

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

"message": "Éxito"

}

}

 

Parte 3. Ejemplo de inicio de sesión de consola

 

[Código fuente del método de inicio de sesión

static async void LoginTask()

        {

            string resourceAddress = "https://127.0.0.1:443/api/login"//Enter your BioStar 2 address & the API call you’d like to perform(login in this case)

 

            HttpClient httpClient = new HttpClient();

            

            JavaScriptSerializer serializer = new JavaScriptSerializer();

                 

            Dictionary<stringstring> dicLoginUser = new Dictionary<stringstring>();

           

            dicLoginUser.Add("login_id""admin"); // Enter BioStar 2 Admin Login ID

            dicLoginUser.Add("password""adminPassword"); // Enter your password of BioStar 2 Admin

            Dictionary<stringobject> dicLogin = new Dictionary<stringobject>();

            dicLogin.Add("User", dicLoginUser);  // Save your ID and PW to a parameter named “User” and add it to dicLogin

 

            string jsonLoginUser = serializer.Serialize(dicLogin);

            

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

 

            // To load HTTPS Certificate

            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

            

            //This is an example line to allow the certificate check is secure. You can have your own line for better secure of your application.

            //Please search stackoverflow for the error description - The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

            //A common reason you may receive the error above Could not establish trust relationship for the SSL/TLS secure channel is because the SSL certificate isn't trusted. 

           //Below code ignore the untrusted cert errors. 

            System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

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

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

 

            if (httpResponse.IsSuccessStatusCode == true)

            {

                   Console.WriteLine(httpResponse.ToString());

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

                //Console.WriteLine(httpResponseBody);

                Console.WriteLine("Login successful...");

 

 

                MemoryStream responseMemoryStream = new MemoryStream();

                StreamWriter sw = new StreamWriter(responseMemoryStream);

                   sw.Write(httpResponse.ToString());

                sw.Flush();

 

                bool isSessionIDContained = httpResponse.Headers.Contains("bs-session-id");

                if (isSessionIDContained == true)

                {

                    IEnumerable<string> sessionEnum = httpResponse.Headers.GetValues("bs-session-id");

                    

                    foreach (string element in sessionEnum)

                    {

                        Console.WriteLine("bs-session-id: " + element);

                        sessionID = element;

                    }

                }

                else if (isSessionIDContained != false)

                {

                    Console.WriteLine("Session ID not found");

                }

            }          

            else

            {

                Console.WriteLine("Failed to log in");

                   Console.WriteLine(httpResponse.ToString());

            }            

        }

 

 

[Después de iniciar sesión correctamente]

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

자동 생성된 설명

 

 

 

Parte 4. Iniciar sesión a través de Postman

 

[Ejemplo de solicitud]

Interfaz gráfica de usuario, aplicación

Descripción generada automáticamente

 

[Ejemplo de respuesta: cuerpo]

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

자동 생성된 설명

 

[Ejemplo de respuesta: Encabezados]

*Debe usar el valor 'be-session-id' para otras llamadas a la API de Postman.

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

자동 생성된 설명