Exponer una operación como API REST en Jitterbit Studio
Introducción
API Manager te permite publicar una operación de Studio como un endpoint HTTP que cualquier llamante autorizado puede invocar bajo demanda. Una vez publicado, el endpoint acepta una solicitud HTTP, ejecuta la operación vinculada de forma sincrónica y devuelve el resultado de la operación como respuesta HTTP.
Este patrón es útil cuando un sistema externo o una herramienta interna necesita solicitar datos o activar procesamiento bajo demanda, por ejemplo una aplicación web que consulta registros de clientes, un sistema asociado que envía pedidos para procesamiento, o un panel interno que activa la generación de reportes.
Esta guía utiliza la opción integrada de Studio Publicar como API, que abre la configuración de API directamente desde la operación. Alternativamente, se puede lograr el mismo resultado desde la interfaz de API Manager (consulta API personalizada).
Esta guía asume lo siguiente:
- Se configura una API personalizada y se publica en API Manager en el mismo entorno que el proyecto.
- La operación que se expondrá como API ya está construida e implementada.
Para el patrón complementario (recibir notificaciones webhook activadas por eventos desde sistemas externos), consulta Activar una operación de Studio desde un webhook.
Patrón de diseño
Parte 1: Publicar la operación como API
Paso 1: Abre la configuración de API
-
En el lienzo de diseño, ubica la operación que deseas publicar.
-
Haz clic en el icono del menú de acciones en la operación y selecciona Publicar como API.
El panel de configuración de API se abre en la parte inferior del diseñador de proyectos.
Nota
Esta opción solo está disponible si la operación no tiene cambios sin implementar. Implementa la operación primero si la opción no está disponible.
Paso 2: Configura el perfil de API
En el paso Perfil, ingresa los detalles básicos de la API:
-
Nombre de API: Ingresa un nombre para identificación interna (por ejemplo,
Customer Query API). Este nombre aparece en API Manager y en los registros de operaciones. -
Raíz del servicio: Ingresa el segmento de ruta base utilizado en la URL del endpoint público (por ejemplo,
customers). Este campo se rellena previamente con el nombre de la operación en notación camelCase. No se permiten espacios. -
Número de versión: Ingresa una cadena de versión (por ejemplo,
v1). Se convierte en parte de la URL del endpoint. -
Haz clic en Siguiente.
Paso 3: Configura los parámetros
En el paso Parámetros, configura el comportamiento en tiempo de ejecución:
-
Solo SSL: Déjalo habilitado. Esto requiere HTTPS y se recomienda para todos los endpoints de producción.
-
Tiempo de espera: Establece el tiempo máximo que API Manager espera a que se complete la operación antes de devolver un error de tiempo de espera agotado. El valor predeterminado es 30 segundos; el máximo es 180 segundos.
-
Registro detallado: Habilítalo durante el desarrollo para incluir datos de solicitud y respuesta en los registros de API. Desactívalo en producción para evitar archivos de registro grandes.
-
Haz clic en Siguiente.
Paso 4: Configura el endpoint del servicio
En el paso Servicios, define cómo los llamantes acceden a la operación:
-
Método: Selecciona el método HTTP que los llamantes utilizarán. Para operaciones de lectura, selecciona GET. Para operaciones que acepten un cuerpo de solicitud (envío de datos, creación de registros), selecciona POST.
-
Ruta: Ingresa la subruta anexada a la URL base (por ejemplo,
/recordso/submit). -
Tipo de respuesta: Selecciona cómo la operación devuelve su respuesta al llamante:
- Variable del sistema: El cuerpo de respuesta es el valor asignado a
$jitterbit.api.responseen la operación. Utiliza esto en la mayoría de los casos, ya que brinda control total sobre el contenido de respuesta y el código de estado. Consulta la Parte 2 para obtener detalles. - Objetivo final: La respuesta es el resultado de una actividad de respuesta de API al final de la cadena de operaciones. Utiliza esto cuando la operación ya termina con una actividad de respuesta de API.
- Sin respuesta: API Manager devuelve un
202 Acceptedvacío inmediatamente sin esperar a que se complete la operación. Utiliza esto para operaciones de larga duración "dispara y olvida" donde el llamante no necesita un resultado.
- Variable del sistema: El cuerpo de respuesta es el valor asignado a
-
Haz clic en Siguiente.
Paso 5: Agregar un perfil de seguridad
En el paso Perfiles de seguridad, asigna al menos un perfil de seguridad para restringir el acceso al endpoint.
-
Para usar un perfil existente, activa el botón Asignar junto a él.
-
Para crear un perfil nuevo, haz clic en Nuevo perfil de seguridad y sigue las indicaciones. La clave de API y la autenticación básica son las opciones más comunes para integraciones máquina a máquina. Para API orientadas al usuario que requieren identidad, usa OAuth 2.0.
Consejo
Dejar el endpoint sin asignar un perfil de seguridad lo hace públicamente accesible para cualquiera que tenga la URL. Siempre asigna un perfil de seguridad antes de publicar en producción.
-
Haz clic en Siguiente.
Paso 6: Publicar
-
En el paso Roles de usuario, opcionalmente restringe el acceso por rol de organización. Haz clic en Siguiente si no se necesita restricción de rol.
-
Haz clic en Publicar.
La API estará activa en cinco minutos. API Manager muestra la URL completa del endpoint en el formato
https://<host>/<service-root>/<version>/<path>. Copia esta URL para compartirla con el consumidor de la API.Nota
Una API publicada cuenta como una URL de API contra tu asignación de suscripción a Harmony. Guarda como Borrador si prefieres completar la configuración antes de hacer el endpoint activo.
Parte 2: Devolver una respuesta desde la operación
Cuando el Tipo de respuesta está configurado como Variable del sistema, la operación debe asignar el cuerpo de la respuesta a $jitterbit.api.response antes de completarse. Agrega un paso de script al final de la operación (o al final de la cadena de operaciones) para establecer este valor.
-
Devolver una respuesta JSON:
<trans> $jitterbit.api.response = JSONStringify($result_dict); $jitterbit.api.response.status_code = 200; </trans> -
Devolver una respuesta de texto plano:
<trans> $jitterbit.api.response = "Processing complete"; $jitterbit.api.response.status_code = 200; </trans> -
Devolver una respuesta de error:
<trans> $err_response = Dict(); $err_response["error"] = "Record not found"; $jitterbit.api.response = JSONStringify($err_response); $jitterbit.api.response.status_code = 404; </trans>
Si $jitterbit.api.response no está establecida antes de que la operación se complete, API Manager devuelve una respuesta 200 OK vacía.
Para obtener una lista completa de variables de API Jitterbit, consulta Variables de API Jitterbit.
Verificar la integración
-
Implementa el proyecto si has realizado cambios desde que publicaste.
-
En API Manager, copia la URL del endpoint publicado desde la página APIs.
-
Envía una solicitud de prueba al endpoint usando una herramienta como curl o Postman, incluyendo el encabezado de autorización apropiado para el perfil de seguridad que asignaste.
-
Confirma que el cuerpo de la respuesta HTTP y el código de estado coincidan con los valores establecidos en la operación.
-
Abre los registros de API en API Manager y los registros de operación en Studio para confirmar que la solicitud se recibió y la operación se completó correctamente.
Para agregar autenticación a la operación en sí (por ejemplo, para validar un JWT en un paso de script antes de procesar la solicitud), consulta Autenticar endpoints de API usando JWT.