La tecnología y la automatización de procesos empresariales han dado un salto hacia adelante con los productos basados en ADOXX. Su capacidad para simplificar tareas y optimizar flujos de trabajo ha cambiado la forma en que las empresas operan. Pero, ¿sabías que puedes llevar tus experiencias con ADOXX al siguiente nivel? En este blog, te sumergirás en el mundo de la API REST de ADOXX-Based Products.
Antes de comenzar, es importante entender algunas bases técnicas. ADOXX RESTful services se basan en JAX-RS, una API de programación que facilita la creación de interfaces RESTful. En particular, ADOXX utiliza la implementación de referencia de JAX-RS llamada "Jersey". Esta tecnología está respaldada por documentación sólida, lo que hace que la programación con ADOXX sea aún más emocionante.
Descifrando las URL
Las direcciones para los servicios RESTful expuestos por los productos ADOXX siguen un patrón específico. La URL tiene la forma:
https://<SERVER_NAME>:<PORT>/<PRODUCT><VERSION>/rest/[service path].
La parte antes de "[service path]" es la ruta fija, mientras que la parte posterior está definida por el servicio en cuestión.
Primeros Pasos
Los productos BOC ofrecen una API REST genérica y extensible que permite el acceso autenticado a funciones expuestas. Para comenzar, activa y configura el acceso a la API REST siguiendo las instrucciones detalladas en el Manual de Administración.
Autenticación
ADOXX RESTful services soporta tres mecanismos de autenticación:
Token Based: Cada solicitud va acompañada de un token de seguridad Hash para garantizar la validez de la solicitud. Las solicitudes se ejecutan en el contexto de un usuario técnico.
Basic Authentication: Cada solicitud contiene el encabezado "Autorización" donde el valor es el nombre de usuario y la contraseña separados por un solo carácter de dos puntos (:), dentro de una cadena codificada en base64. Las solicitudes pueden ejecutarse en el contexto de cualquier usuario de producto estándar.
OAuth 2.0: Cada solicitud va acompañada de un token de acceso para garantizar la validez de la solicitud. Las solicitudes pueden ejecutarse en el contexto de cualquier usuario de producto estándar.
Primera solicitud REST: Conexión
Para nuestra primera solicitud REST, haremos uso del método de autenticación Básico,
Suponiendo el nombre de usuario "user" y la contraseña "password", se construye la cadena "user:password" y luego se codifica en base64. Haremos el ejercicio con python para ver cómo quedaría el resultado del encabezado de autorización.
user = "user"
password = "password"]
sAuthorizationCode = f"{user}:{password}"
base64DecodedToken = base64.b64encode(sAuthorizationCode.encode("utf-8")).decode("ascii")
Una vez obtenido el resultado, generaremos una solicitud de autenticación de conexión. Para probar si el acceso autenticado funciona, se puede utilizar el endpoint /rest/connection/auth
url = 'http://<HOST>:<PORT>/ADOXX/rest/connection/auth'
try:
req = requests.get(url, headers={"Authorization": "Basic " + base64DecodedToken})
req.raise_for_status()
if req.status_code == 200:
response = req.text
print(f"Estatus: {req.status_code}")
print(f"Resultado: {response}")
else:
print(f"Error en la solicitud HTTP: {req.status_code}")
except requests.exceptions.RequestException as e:
print(f"Error en la solicitud HTTP: {str(e)}")
except Exception as e:
print(f"Error inesperado: {str(e)}")
Si probamos el código y tenemos acceso, deberiamos obtener como resultado algo similar a lo siguiente:
Estatus: 200 Resultado: Authorized Access Granted @ Thu Nov 02 19:34:18 CET 2023
Restricciones
En general, los usuarios estándar se pueden utilizar para la autenticación básica sin necesidad de preparativos adicionales. El mismo usuario se puede utilizar tanto para las solicitudes REST como para iniciar sesión en el cliente web. Todos los permisos utilizados en el cliente web (acceso al repositorio, roles del sistema, grupos de usuarios, derechos de flujo de trabajo de publicación) se aplican de la misma manera en las solicitudes REST.
Sin embargo, se aplican las siguientes restricciones:
- La autenticación básica no admite el inicio de sesión en el cliente web utilizando un Sistema de Gestión de Identidad (IDM).
- Los usuarios con dos puntos (:) en el nombre de usuario no pueden utilizarse para enviar solicitudes.
- Los usuarios técnicos no pueden utilizarse para enviar solicitudes.
En futuros blogs, exploraremos aún más las características y casos de uso, para que puedas aprovechar al máximo esta poderosa API.