Exponer trabajos como servicios web

www.altova.com Imprimir este apartado Subir un nivel

Inicio > 

Exponer trabajos como servicios web

Los trabajos de FlowForce Server se pueden exponer como servicios web, lo cual permite acceder a ellos mediante programación. No obstante, durante la fase de pruebas y de depuración también puede invocar estos trabajos desde un explorador web.

 

 

Para exponer un trabajo como servicio web:

1.Primero cree un trabajo nuevo o abra uno de los trabajos actuales.
2.Marque al casilla Permitir acceso a este trabajo por HTTP en la dirección URL.

 

ff-service

 

3.En el cuadro de texto escriba el nombre del servicio web.

 

En la URL de solicitud especificada FlowForce Server inicia un servicio de escucha que acepta solicitudes HTTP GET y POST. Los trabajos expuestos como servicios continúan activos mientras FlowForce Server siga ejecutándose.

 

Cuando se invoca el servicio, FlowForce Server ejecuta los pasos de ejecución del trabajo especificados y devuelve:

 

El primer archivo de resultados del último paso (si el trabajo produce un archivo de resultados) o
El resultado estándar del último paso, si no se genera ningún archivo de resultados (esto puede pasar cuando se trabaja con la salida de la línea de comandos).

 

Si el resultado es válido, se devuelve con el estado HTTP 200 y con un encabezado Content-Type configurado de acuerdo con el resultado. El encabezado Content-Type depende del resultado actual. Una asignación de datos de MapForce da como resultado text/xml si el resultado es XML o text/plain si el resultado es texto. El resultado estándar de otras funciones también se devuelve como text/plain. El resultado se devuelve como cuerpo de respuesta, sin adornos.

 

Los errores de ejecución se notifican con el estado HTTP 5xx y con un mensaje de error genérico, pero si necesita más información puede consultar el registro de FlowForce Server.

 

Si quiere consultar un ejemplo con instrucciones para configurar este tipo de trabajos, consulte el apartado Exponer un trabajo como servicio web.

 

 

Para ver todos los servicios web de FlowForce Server que están en ejecución:

Abra el explorador web y escriba esta URL en la barra de dirección:

 

http://[FlowForceServer][PuertoDelServidor]/servicio/*

 

[FlowForceServer] y [PuertoDelServidor] hacen referencia a la dirección de red y al puerto donde se está ejecutando FlowForce Server. FlowForce Server se ejecuta por defecto en http://localhost:4646 (si se accede desde el mismo equipo). El nombre y el puerto del servidor son los definidos en la página de administración (véase Definir la dirección de red y el puerto).

 

Parámetros de un servicio web

Cuando se expone un trabajo como servicio web, todos los parámetros del trabajo se convierten automáticamente en parámetros del servicio. Si un parámetro del trabajo no tiene un valor predeterminado, entonces es obligatorio suministrarlo cuando se invoque el servicio. Los parámetros opcionales toman el valor predeterminado, si su valor no se indica en la solicitud.

 

Cuando se invoca el servicio, FlowForce Server verifica los parámetros suministrados en la solicitud y los compara con los parámetros definidos en el trabajo. Si hay alguna discrepancia, FlowForce Server devuelve el estado HTTP 5xx. En este caso FlowForce Server también muestra un formulario de parámetros HTML, para las tareas de depuración y pruebas. Este formulario HTML se puede utilizar para introducir parámetros a mano en las tareas de depuración y pruebas. Por cada parámetro de tipo Secuencia, en la página aparece un botón Examinar, que puede utilizar para cargar el archivo que sea necesario como parámetro.

 

Para ver el formulario HTML de pruebas sin condiciones, suministre el parámetro integrado showform en la solicitud (con cualquier valor).

 

Si utiliza Internet Explorer para probar trabajos de FlowForce Server expuestos como servicios web puede que necesite deshabilitar la opción Mostrar mensajes de error HTTP descriptivos en la pestaña de opciones avanzadas de IE.

 

Para llamar a un servicio web de FlowForce con parámetros un cliente puede usar una de estas opciones:

 

1.En el caso de parámetros de tipo simple como cadenas de texto o números, un cliente puede enviarlos en la URL de una solicitud GET o POST. Para ver un ejemplo consulte el apartado Exponer un trabajo como servicio web.
2.En el caso de solicitudes POST, un cliente también puede proporcionar parámetros como multipart/form-data o como application/x-www-form-urlencoded. Si el parámetro es de tipo "secuencia" en FlowForce, entonces el cliente debe proporcionarlos (y FlowForce los espera) como multipart/form-data. Para este tipo de parámetros el formulario HTML de prueba muestra un botón Examinar junto al parámetro correspondiente, como se menciona más arriba.
3.La llamada al cliente también puede incluir contenido arbitrario en el cuerpo de la solicitud POST (esto hace referencia concreta a contenido como JSON o XML enviado no como parámetro sino como el cuerpo de la solicitud HTTP). Para que esto sea posible el trabajo FlowForce debe contener un único parámetro de tipo secuencia. Si necesita más parámetros que no sean secuencia debe suministrarlos con la la URL POST. En FlowForce solo se puede definir un parámetro de tipo secuencia; el resto de parámetros deben ser de otro tipo. Si se cumplen estas condiciones el cuerpo de la solicitud se tratará como datos para el parámetro secuencia. No es necesario configurar nada más. Para ver un ejemplo consulte el apartado Enviar JSON a un servicio web de FlowForce.

 

Autenticación de servicios web

FlowForce Server usa por defecto una autenticación HTTP básica para identificar a los clientes que llaman a un servicio web. Las credenciales de usuario se comparan con los datos disponibles en la BD de usuarios de FlowForce Server (es decir, el nombre de usuario y la contraseña utilizados para iniciar sesión en la interfaz de administración web de FlowForce Server).

ff_login_04

Si quiere que un servicio web esté disponible a usuarios sin credenciales, basta con conceder el permiso Usar servicio al usuario predeterminado useranonymous (véase ¿Cómo funcionan los permisos?). A pesar de que el servicio se pueda usar de forma anónima, puede suministrar credenciales HTTP. Las credenciales se comparan con los datos disponibles en la BD de usuarios de FlowForce Server y la ejecución del servicio se atribuye al usuario autenticado en lugar de al usuario anonymous.

 

Si se aportan credenciales no válidas, la interfaz de solicitud devuelve el estado HTTP 401. Si no aportó ninguna credencial y no concedió el permiso Usar servicio al usuario anonymous para este servicio, la interfaz de solicitud también devuelve el estado HTTP 401.

 

Si se aportan credenciales válidas, pero el usuario autenticado no tiene el permiso Usar servicio para este servicio, la interfaz de solicitud devuelve un estado de error HTTP 4xx. Si intenta acceder a un servicio que no existe, también se devuelve un estado de error HTTP 4xx.

 

Además de la autenticación HTTP básica, puede configurar la autenticación con un dominio (véase Cambiar la configuración de los servicios de directorio). Una vez configurada la autenticación con dominio, los usuarios podrán acceder a los servicios web expuestos por FlowForce Server siempre y cuando aporten un nombre de usuario y una contraseña válidos del correspondiente dominio. Además, es importante saber que, en el caso de Active Directory, el nombre de usuario debe incluir el prefijo NT/ y el nombre de dominio (p. ej. NT/john.doe@my.domain.com).

ff_login_03

 

Configuración de la fila de trabajos

La ejecución del servicio tiene el mismo comportamiento que la ejecución por medio de desencadenadores y tiene las mismas limitaciones en cuanto a filas de ejecución (véase Configurar filas de trabajos).

 


© 2019 Altova GmbH