Este artículo lo guiará a través de la importación de datos de usuario de CSV a la base de datos de BioStar 2 a través de la API de BioStar 2.
Parte 1.
Hay un par de pasos que deben realizarse antes de importar datos de usuario desde CSV a través de la API de BioStar 2.
Parte 1-a.
Primero, debe obtener la lista de campos de usuario que se encuentra en el servidor BioStar 2 que se pueden procesar como columnas CSV.
La siguiente API se utiliza para enumerar todos los campos de usuario que se encuentran en BioStar 2.
OBTENER /api/usuarios/csv_option
Después de ejecutar la API con éxito, recibirá un código de estado HTTP 200 con un cuerpo de respuesta que contiene una lista de todos los campos de usuario en BioStar 2 como se muestra a continuación. Estos valores se usarán más adelante en este artículo.
Parte 1-b.
A continuación, debe cargar el archivo csv en la ruta de instalación del servidor.
La siguiente API se utiliza para cargar un archivo (.csv o .tgz) en la ruta de instalación del servidor BioStar 2, de modo que el archivo se pueda procesar posteriormente para importar datos de usuario a la base de datos.
POST /api/adjuntos
El archivo cargado se ubicará en {{BioStar 2 Installation Path}}\nginx\html\download
Si hay un archivo con el mismo nombre, se sobrescribirá.
[Datos del formulario del cuerpo]
Archivo: archivo CSV para cargar
Si ejecutas correctamente la API, recibirás un código de estado HTTP 200 con un cuerpo de respuesta que tiene el "nombre de archivo".
Este valor de 'nombre de archivo' se utilizará más adelante en este artículo.
En este punto, ha cargado con éxito el archivo csv en la ruta de instalación del servidor BioStar 2.
Parte 2.
Ahora, estamos listos para importar datos de usuario desde csv.
La siguiente API importa datos de usuario de un archivo .csv a la base de datos de BioStar 2.
POST /api/usuarios/csv_import
[Parámetros del cuerpo]
Parámetro | Tipo | Obligatorio | Descripción |
Archivo:Nombre de archivo | Cuerda | Y | Nombre del archivo .csv. Introduzca el valor 'filename' del cuerpo de la respuesta de POST /api/attachments |
Archivo:uri | Cuerda | Y | Ponga el mismo valor que el anterior |
CsvOpción:start_line | Número | Y | Especificar el número de fila para iniciar la importación de datos |
CsvOpción:import_option | Número | Y | Opciones cuando existe el mismo ID en Biostar 21 = Conservar datos2 = Sobrescribir datos |
Consulta:columnas | Arreglo | Y | Lista de campos en BioStar 2. Utilice GET /api/users/csv_option para obtener esta lista |
Consulta:encabezados | Arreglo | Y | Lista de campos en .csv archivo. El orden de estos campos debe coincidir con los campos de usuario correspondientes en Query:columns |
* Para 'File:fileName' y 'File:uri', use el valor 'filename' del cuerpo de la respuesta de POST /api/attachments.
* Para 'Query:columns', use el valor 'rows' del cuerpo de la respuesta de GET /api/users/csv_option.
* Los campos enumerados en el parámetro Query se utilizan para el mapeo de campos entre .csv archivo y la base de datos BioStar 2.
Por ejemplo, el primer campo que aparece en Query:headers (.csv) coincidirá con el primer campo de Query:columns (BioStar 2).
* Para cambiar esta asignación, ajuste la secuencia en Query:headers como desee.
* Para omitir un campo de la asignación, coloque una cadena vacía ("") en el campo deseado.
* El número de campos en 'Query:headers' debe coincidir con el número de campos en 'Query:columns'. Si no tiene los campos en el archivo csv, simplemente coloque una cadena vacía ("").
* Si el archivo CSV que se va a importar contiene datos para campos de usuario personalizados y los campos no existen en el servidor, los datos de los campos se ignorarán durante el proceso de importación.
[Ejemplo de cuerpo de solicitud]
{
"Archivo": {
"uri": "testing.csv",
"fileName": "testing.csv"
},
"CsvOption": {
"start_line": 2,
"import_option": 2
},
"Consulta": {
"encabezados": [
"user_id",
"nombre",
"departamento",
"user_title",
"teléfono",
"correo electrónico",
"user_group",
"start_datetime",
"expiry_datetime",
"CSN",
"secure_credential",
"access_on_card",
"mobile_start_datetime",
"mobile_expiry_datetime",
"csn_mobile",
"QR",
"Estándar SIA de 26 bits-H10301",
"HID 37 bits-H10302",
"HID 37 bit-H10304",
"HID Corporativo 1000",
"HID Corporativo 1000 de 48 bits",
"face_image_file1",
"face_image_file2",
"alfiler",
"tom_aoc",
"tom_scc"
],
"columnas": [
"user_id",
"nombre",
"departamento",
"user_title",
"teléfono",
"correo electrónico",
"user_group",
"start_datetime",
"expiry_datetime",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
}
Si no hay ningún problema en el proceso de importación, la API tendrá una respuesta "Correcto".
[Ejemplo de cuerpo de respuesta correcta]
{
"Respuesta": {
"código": "0",
"link": "https://support.supremainc.com/en/support/home",
"message": "Éxito"
}
}
Si hay problemas (correo electrónico duplicado, etc.), la respuesta mostrará "La solicitud se ha realizado correctamente pero parcialmente" e incluirá un nombre de archivo que contenga los registros que causaron los errores. Este archivo se puede descargar mediante GET /download/:csv_filename
Si hay errores que impiden el proceso de importación, como un formato de fecha y hora incorrecto, se producirá un error en la llamada a la API y recibirá un código de error.