Después de instalar BioStar 2 v2.7.10 o una versión superior, puede ver la documentación de BioStar 2 New Local API que proporciona información más detallada sobre cómo usar BioStar 2 New Local API. [API de BioStar 2] Cómo usar e iniciar la nueva API local de BioStar 2

 

En este artículo, voy a echar un vistazo más de cerca a una aplicación de ejemplo que hice para aquellos que están familiarizados con C # o aplicaciones independientes de Windows. Dado que BioStar 2 New Local API es RESTful API, aquellos que no están familiarizados con RESTful API pueden tener dificultades para implementar sus propias aplicaciones con BioStar 2 New Local API. Por lo tanto, me gustaría guiarlos para iniciar su desarrollo con la aplicación de ejemplo en este artículo.

 

Paso 1: Instalar el certificado HTTPS

1) Confirme si BioStar 2 Server se está ejecutando con la opción HTTPS. Además, compruebe si la página de BioStar 2 no es segura o no. BioStar 2 habilita HTTPS de forma predeterminada y el administrador debe tener un certificado HTTPS por adelantado.Graphical user interface

Description automatically generated with medium confidence

[Figura 1. Página bioStar 2]

 

2) Si no instala el certificado HTTPS, verá la página No seguro como la anterior. Luego, primero debe instalar el certificado HTTPS. Una vez que acceda a BioStar 2, puede encontrar [Descargar el programa de instalación de certificación https] de la siguiente manera.

Interfaz gráfica de usuario, aplicación

Descripción generada automáticamente

[Figura 2. Programa de certificado HTTPS]

 

Descomprima el archivo descargado.

Mensaje de texto

Descripción generada automáticamente con confianza media

[Figura 3. Descomprimir archivos]

 

3) Ejecute cert-register.exe como administrador e ingrese la dirección IP del servidor con el número de puerto.

 

Graphical user interface, text, application, email

Description automatically generated[Figura 4. Configuración del servidor BioStar 2]

Interfaz gráfica de usuario, texto

Descripción generada automáticamente con confianza media

[Figura 5. Programa de certificados HTTPS de BioStar 2: introduzca la dirección IP del servidor BioStar 2 con el puerto]

Interfaz gráfica de usuario, texto, aplicación, correo electrónico

Descripción generada automáticamente

[Figura 6. Ventana emergente: Confirme si la dirección IP es su direcciónIP ingresada(IP del servidor)]

Paso 2: Consulte el siguiente ejemplo

Esta aplicación de ejemplo es una aplicación de consola de Visual C# e incluye una función básica: login.

 

Dado que BioStar 2 utiliza HTTPS, dichos  códigos deben agregarse al código fuente

.

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;  System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };  
C


Sin el código anterior, es posible que tenga el siguiente código de error.

- La conexión subyacente se cerró: No se pudo establecer una relación de confianza para el canal seguro SSL/TLS y, a continuación, implementar el código fuente original.

 

Recomendamos encarecidamente que busque StackOverflow  y, a continuación, agregue más líneas que sean relevantes para el certificado de confianza HTTPS.

 

(Ejemplo: API de inicio de sesión)


static async void LoginTask()        {            string resourceAddress = "https://192.168.13.32:456/api/login"; //Enter your BioStar 2 address
            HttpClient httpClient = new HttpClient();                        JavaScriptSerializer serializer = new JavaScriptSerializer();                             Dictionary<string, string> dicLoginUser = new Dictionary<string, string>();                       dicLoginUser.Add("login_id", "admin"); // Enter BioStar 2 Admin Login ID            dicLoginUser.Add("password", "biostar2"); // Enter your password of BioStar 2 Admin            Dictionary<string, object> dicLogin = new Dictionary<string, object>();            dicLogin.Add("User", dicLoginUser);
            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.             System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };                                     HttpResponseMessage httpResponse = await httpClient.PostAsync(resourceAddress, sc);                        if(httpResponse.IsSuccessStatusCode == true)            {                Console.WriteLine(httpResponse.ToString());                string httpResponseBody = await httpResponse.Content.ReadAsStringAsync();                                Console.WriteLine(httpResponseBody);                                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);                        string[] strCookieArr = element.Split(new string[] { "bs-session-id=" }, StringSplitOptions.None);                        //string[] strCookieArr2 = strCookieArr[1].Split(new string[] { ";" }, StringSplitOptions.None);                        sessionID = strCookieArr[0];                    }                }                else if (isSessionIDContained != false)                {                    Console.WriteLine("Session ID not found");                }            }                      else            {                Console.WriteLine("Failed to log in");                Console.WriteLine(httpResponse.ToString());            }                    }
C