La API de Flight Tracker permite al desarrollador obtener el estado de los vuelos en tiempo real. Esto es la mar de útil para integrar un histórico o una consulta en tiempo real del tráfico aéreo en tu sitio web. Puedes traquear de manera sencilla el estado de un vuelo y acceder al horario del aeropuerto utilizando dicha API.
Existen varias API de Flight Tracker para obtener el estado del vuelo. Sin duda alguna, aviationstack es una de las mejores. Esta API proporciona una manera sencilla de acceder a los datos de la aviación de manera global (estado del vuelo y horario del aeropuerto) en tiempo real. Aviationstack rastrea todos y cada uno de los vuelos del mundo en todo momento, se almacena en la base de datos y proporciona el estado del vuelo en tiempo real a través de API. Es una API REST fácil de usar que devuelve la respuesta en formato JSON, es amigable con cualquier lenguaje de programación (PHP, Python, Ruby, Nodejs, jQuery, Go, etc.). En este tutorial, te mostraremos cómo obtener el estado del vuelo en tiempo real con la API de Flight Tracker de aviationstack utilizando PHP.
Obtén las credenciales de la API
Para ello, créate primero una cuenta en aviationstack. Un vez dentro de su dashboard, podrás copiar la API key en la sección Your API Access Key.
Configuración de la API
Necesitamos la Access Key para autenticarnos y acceder a la API de aviationstack.
- Ahora tendremos que construir la query de consulta utilizando la función http_build_query() para pasar los parámetros que necesita la API de aviationstack.
- Define el Access Key en el parámetro access_key.
$queryString = http_build_query([ 'access_key' => 'TU_ACCESS_KEY' ]);
Petición HTTP GET
Para extraer los datos de los vuelos, tendremos que llamar a la API de aviationstack vÃa HTTP GET utilizando cURL.
// URL de la API con la query string $apiURL = sprintf('%s?%s', 'http://api.aviationstack.com/v1/flights', $queryString); // Inicializamos cURL $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $apiURL); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Ejecutamos la API $api_response = curl_exec($ch); // Cerramos cURL curl_close($ch);
Ojo, para asegurarnos de que la llamada a la API es segura, procura realizarla llamando a la URL con https:
https://api.aviationstack.com
Estado de los vuelos e información general
Después de hacer la llamada a la API, obtendremos el estado del vuelo en tiempo real y la información relacionada en formato JSON. Inicialmente, la API de ipstack devuelve los siguientes datos de geolocalización.
- Fecha del vuelo (flight_date)
- Estado del vuelo (flight_status)
- Información de la salida y la llegada (departure/arrival)
- airport
- timezone
- iata
- icao
- terminal
- gate
- delay
- scheduled
- estimated
- actual
- estimated_runway
- actual_runway
- Información de la aerolÃnea (airline)
- name
- iata
- icao
- Información del vuelo (flight)
- number
- iata
- icao
- codeshared
- Información del avión (aircraft)
- registration
- iata
- icao
- icao24
- Datos en vivo (live)
- updated
- latitude
- longitude
- altitude
- direction
- speed_horizontal
- speed_vertical
- is_ground
Mediante la función json_decode() podremos convertir los datos obtenidos en JSON, en un array de PHP.
$api_result = json_decode($api_response, true);
Ejemplo de cómo extraer la información de los vuelos mediante la API de aviationstack
Más abajo puedes ver el código completo para obtener una información global de vuelos utilizando la API de aviationstack mediante PHP.
<?php // Definimos la Access key de la API $queryString = http_build_query([ 'access_key' => 'TU_ACCESS_KEY', 'limit' => 10 ]); // URL de la API con la query string $apiURL = sprintf('%s?%s', 'http://api.aviationstack.com/v1/flights', $queryString); // Inicializamos cURL $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $apiURL); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Ejecutamos la API $api_response = curl_exec($ch); // Cerramos cURL curl_close($ch); // Convertimos el JSON en un array $api_result = json_decode($api_response, true); // Mostramos los datos de los vuelos foreach ($api_result['data'] as $flight) { if (!$flight['live']['is_ground']) { echo sprintf("%s vuelo %s de %s (%s) a %s (%s) está en el aire.", $flight['airline']['name'], $flight['flight']['iata'], $flight['departure']['airport'], $flight['departure']['iata'], $flight['arrival']['airport'], $flight['arrival']['iata'] ), PHP_EOL; echo '<br/>'; } } ?>
Â