Llamadas a servicios web
MapForce le permite utilizar API HTTP y servicios basados en WSDL como funciones de asignación de datos. Para obtener información general sobre los servicios web compatibles, consulte Servicios web.
Añadir una llamada a un servicio web
Para añadir una llamada a un servicio web, siga los amplios procedimientos que se indican a continuación:
1.Haga clic en el botón de la barra de herramientas. Como alternativa, abra el menú Insertar y haga clic en Función de servicio web. Esto abre el cuadro de diálogo Configuración del servicio web.
2.En la sección Definición del servicio, seleccione el tipo de definición del servicio correspondiente. Dependiendo de la opción que seleccione, se mostrarán diferentes conjuntos de opciones de configuración. Para más detalles consulte estos temas:
oLlamadas a servicios web basados en WSDL
oDefinición manual del servicio
3.Defina la configuración de la llamada al servicio web.
4.Haga clic en Aceptar. La llamada al servicio web aparecerá como un componente en la asignación.
Cambiar/actualizar la configuración de la llamada al servicio web
Puede cambiar la configuración del servicio web en el cuadro de diálogo Configuración de la llamada al servicio web. Hay varias maneras de abrir este cuadro de diálogo:
•Haciendo doble clic en el título del componente de la llamada al servicio web.
•Haciendo clic con el botón derecho en el título del componente de la llamada al servicio web y seleccionando Propiedades en el menú contextual.
•Haciendo clic en el componente de servicio web y seleccionando Propiedades en el menú Componente
Ejemplo de llamada a un servicio web
La asignación que se muestra a continuación envía una solicitud GET a una API HTTP para recuperar un producto en función de su ID y envía los detalles del producto a un archivo JSON.
Partes de una llamada a un servicio web
El componente de llamada al servicio web consta de dos partes: la solicitud y la respuesta. La parte Solicitud le permite suministrar datos de la asignación de datos al servicio web. La parte Respuesta le permite acceder a los datos devueltos por el servicio web y asignarlos a otros formatos. En nuestro ejemplo, los datos devueltos por el servicio se asignan a un archivo JSON.
Solicitud
La solicitud contiene varios parámetros y un cuerpo de solicitud.
Parámetros
Los parámetros pasan información necesaria para que el servidor procese la solicitud y devuelva una respuesta adecuada. Los parámetros pueden ser de varios tipos diferentes (por ejemplo, parámetros de ruta, parámetros de consulta) y pueden servir para diferentes propósitos (por ejemplo, para filtrar, ordenar y buscar datos, pasar detalles de autenticación, etc.).
En nuestro ejemplo, el ID suministrado a la solicitud HTTP tiene el valor constante de 2, lo que significa que queremos recuperar los detalles del producto con este ID. Además, la solicitud contiene dos parámetros de encabezado: Accept y Accept-Charset. El parámetro Accept tiene el valor constante de application/json, que se refiere al tipo de contenido que MapForce quiere recibir del servidor. Puede establecer los parámetros en el cuadro de diálogo Configuración de la llamada al servicio web (véase Parámetros).
Cuerpo
En la llamada al servicio web anterior, no se establece la estructura del cuerpo de la solicitud, porque solo queremos enviar una solicitud, utilizando parámetros de encabezados y plantillas. Definir la estructura del cuerpo de la solicitud podría tener sentido, por ejemplo, cuando desee realizar operaciones POST, PUT y PATCH.
Respuesta
La parte de respuesta de la llamada contiene un código de estado, encabezados y un cuerpo de respuesta.
Código de estado
El código de estado HTTP es un número de tres dígitos (por ejemplo, 404) que envía el servidor para indicar el resultado de la solicitud.
Encabezados
Los encabezados proporcionan metadatos importantes sobre la respuesta (por ejemplo, el tipo de contenido que se devuelve) y ayudan a MapForce a comprender cómo procesar la respuesta.
Los encabezados de respuesta devueltos por el servicio web también se pueden asignar si son encabezados adicionales (los que no empiezan por Content). El nodo Header de la estructura de respuesta contiene dos elementos secundarios: Name y Value..
Cuerpo
El cuerpo de la respuesta recibe el contenido devuelto por el servidor. El aspecto del cuerpo de la respuesta depende de la estructura de respuesta que haya seleccionado.
Los datos a este nivel son binarios codificados, por lo que para interactuar con ellos son necesarias las funciones mime de MapForce. Observe que por lo general no es necesario interactuar con la parte Body en absoluto si el servicio web espera o devuelve estructuras de datos como XML o JSON. Solo es necesario asignar datos directamente a o desde Body al llamar a servicios web que esperan o devuelven contenido sin estructura.
Por defecto, el elemento Body está configurado para que analice el resultado si el código de estado HTTP se encuentra entre 200 y 299. Esto significa que la asignación devuelve un error para códigos de estado mayores que 299. También devuelve un error si la respuesta no se puede analizar o si no se puede llamar al servicio web debido a un error de conexión o a problemas de la resolución del DNS.
En algunos casos puede que quiera que la asignación no devuelva un error incluso aunque el código de estado HTTP sea mayor que 299. Para cambiar esta opción haga clic en el botón que hay junto al elemento Body de la respuesta y cambie el rango del código de estado HTTP. Otra alternativa es crear varios elementos Body de respuesta. Por ejemplo, puede crear un cuerpo que se encargue de los resultados correctos y otro cuerpo que se encargue de los errores. Para más detalles sobre este tipo de configuración, consulte Control de errores en las API HTTP.
Más ejemplos
Para ver ejemplos de asignaciones con llamadas a servicios web, consulte los siguientes temas:
•Ejemplo: llamar a una API HTTP
•Ejemplo: asignar datos de un canal RSS
•Ejemplo: llamar a un servicio web SOAP
•Ejemplo: autorización OAuth 2.0