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:
- Iniciar sesión
- Buscar usuarios
- Crear usuarios
- Crear usuarios con access group
- Recuperar datos de registro
- 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<string, string> dicLoginUser = new Dictionary<string, string>();
dicLoginUser.Add("login_id", "admin"); // Enter BioStar 2 Admin Login ID dicLoginUser.Add("password", "adminPassword"); // Enter your password of BioStar 2 Admin Dictionary<string, object> dicLogin = new Dictionary<string, object>(); 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]
[Ejemplo de respuesta: cuerpo]
[Ejemplo de respuesta: Encabezados]
*Debe usar el valor 'be-session-id' para otras llamadas a la API de Postman.