Ejemplo: llamar a una API HTTP
Este ejemplo sirve para explicar cómo se llama a un servicio web HTTP genérico desde MapForce. La descripción del servicio web al que se llama en este ejemplo puede encontrarse en https://app.swaggerhub.com/apis/FAA/ASWS/1.1.0. Este servicio web devuelve el estado actual de cualquier aeropuerto de EE UU (p. ej., cierres de aeropuertos, retrasos, etc.). El ejemplo viene acompañado de un diseño de asignación de datos que está en esta carpeta: MapForceExamples\AirportStatus.mfd.
En este ejemplo, no hay ninguna estructura de solicitud y la respuesta del servicio web es un esquema DTD que se encuentra en esta carpeta: MapForceExamples\AirportStatus.dtd. La respuesta se asignará a un componente XML que está basado en el archivo AirportStatus.dtd.
Para configurar una llamada a una API HTTP, siga los pasos que se describen a continuación.
Paso 1: Agregar llamadas a un servicio web
En este paso queremos agregar un componente de llamada a servicios web a la asignación para definir sus parámetros. Siga estos pasos:
1.Asegúrese de que el lenguaje de transformación de la asignación de datos es el lenguaje integrado BUILT-IN.
2.En el menú Insertar, haga clic en Función de servicio web. Esto abre el cuadro de diálogo Configuración de llamadas a servicios web (imagen siguiente).
3.En el grupo de opciones Definición del servicio elija la opción Manual.
4.Elija el método de solicitud GET y defina la URL https://nasstatus.faa.gov/api/airport-status-information.
5.En la sección Estructuras del cuadro de diálogo Configuración de llamadas a servicios web, haga clic en el botón Editar que está junto al campo Respuesta. Así se abre el cuadro de diálogo Estructura de la respuesta (véase más abajo), en el que debe indicar el esquema de la respuesta del servicio web. Encontrará el esquema aquí: MapForceExamples\AirportStatus.dtd.
6.Haga clic en Aceptar. Ahora el servicio web está disponible en el área de asignación (ver a continuación).
Paso 2: Agregar la salida XML
En el segundo paso, el objetivo es agregar un componente de destino y crear conexiones entre la llamada al servicio web y el destino. Para ello siga estos pasos:
1.En el menú Insertar haga clic en Arc&hivo o esquema XML.
2.Haga clic en Buscar archivo pare encontrar MapForceExamples\AirportStatus.dtd y pulse Abrir.
3.Cuando la aplicación solicite un archivo XML de muestra, haga clic en Omitir (el archivo XML de muestra no es necesario porque la aplicación generará uno).
4.Conecte el nodo AIRPORT_STATUS_INFORMATION del cuerpo de la respuesta del servicio web al nodo AIRPORT_STATUS_INFORMATION del componente XML, tal y como muestra la siguiente imagen.
Paso 3: Ejecutar la asignación
El último paso consiste en llamar al servicio web: Haga clic en el panel Resultados para ejecutar la asignación y consultar la vista previa del resultado que se genera. Si la llamada al servicio web se ejecuta correctamente, en el panel Resultados aparecerá la estructura XML que se devuelve. Si la llamada no se ejecuta correctamente, MapForce devolverá un mensaje de error. También puede recibir, por ejemplo, el código HTTP 404 si no hay disponible información sobre los retrasos.
En nuestro ejemplo, hemos recibido esta información sobre el estado del aeropuerto:
<AIRPORT_STATUS_INFORMATION>
<Update_Time>Fri Sep 15 12:04:41 2023 GMT</Update_Time>
<Dtd_File>http://www.fly.faa.gov/AirportStatus.dtd</Dtd_File>
<Delay_type>
<Name>Airport Closures</Name>
<Airport_Closure_List>
<Airport>
<ARPT>BOS</ARPT>
<Reason>!BOS 09/153 BOS AD AP CLSD TO NON SKED TRANSIENT GA ACFT EXC PPR 617-561-2500 2309081532-2310010359</Reason>
<Start>Sep 08 at 15:32 UTC.</Start>
<Reopen>Oct 01 at 03:59 UTC.</Reopen>
</Airport>
<Airport>
<ARPT>LAS</ARPT>
<Reason>!LAS 07/017 LAS AD AP CLSD TO NON SKED TRANSIENT GA ACFT EXC PPR 702-261-7775 2307072300-2310052300</Reason>
<Start>Jul 07 at 23:00 UTC.</Start>
<Reopen>Oct 05 at 23:00 UTC.</Reopen>
</Airport>
<Airport>
<ARPT>BCT</ARPT>
<Reason>!MIA 09/078 BCT AD AP CLSD EXC HEL OPS FM ALL APN MON-FRI 0100-1100 2309110100-2309291100</Reason>
<Start>Sep 11 at 01:00 UTC.</Start>
<Reopen>Sep 29 at 11:00 UTC.</Reopen>
</Airport>
</Airport_Closure_List>
</Delay_type>
</AIRPORT_STATUS_INFORMATION>
Si tiene MapForce Server, también puede compilar la asignación en un archivo de ejecución (*.mfx) y ejecutar este archivo desde la línea de comandos o desde la API de MapForce Server en el equipo servidor donde se ejecuta MapForce Server (véase Compilar asignaciones en archivos de ejecución de MapForce Server).
En resumen, ya sabe crear una llamada a servicio web HTTP genérico que utiliza un método GET para recuperar datos de estado de los aeropuertos en tiempo real. Para obtener más información sobre cómo trabajar con servicios web genéricos, consulte Agregar una llamada a un servicio web.