Skip to content

REST microservice for openflights airports and airlines data

License

Notifications You must be signed in to change notification settings

commenthol/openflights-data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

openflights-data

REST microservice for openflights airports and airlines data

Get airport and airline data via REST API.

Run Example

npm install
cd example && npm install && npm run build && cd ..
npm start

Open http://localhost:3003

screenshot

Usage with express server

const {router} = require('openflights-data')
const app = require('express')()

app.use('/', router())
app.listen(3000)

Just access data.

const {loadData} = require('openflights-data')

loadData(config).then(data => console.log(data))

API

Get airport by IATA Code

Returns GeoJSON Feature

GET /airports/iata/:code
// e.g.
GET /airports/iata/aaa

{
  type: 'Feature',
  geometry: {
    type: 'Point',
    coordinates: [-145.50999450683594, -17.35260009765625]
  },
  properties: {
    id: '1973',
    name: 'Anaa Airport',   // name of airport
    city: 'Anaa',           // city name
    iata: 'AAA',
    icao: 'NTGA',
    alt: 10,                // altitude in ft
    tz: 'Pacific/Tahiti',   // timezone
    country: 'PF',          // ISO-3166 Country Code
    type: 'airport'         // type: airport, airbase, heliport, seaplane,
                            //       airfield, bus, port, station
  }
}

Get airport by ICAO Code

Returns GeoJSON Feature

GET /airports/icao/:code

Search airport by name

Returns GeoJSON FeatureCollection

GET /airports/search/:search
// e.g.
GET /airports/search/leonardo+da

{
  type: 'FeatureCollection',
  features: [
    {
      type: 'Feature',
      geometry: {
        type: 'Point',
        coordinates: [12.2388889, 41.8002778]
      },
      properties: {
        id: '1555',
        name: 'Leonardo da Vinci–Fiumicino Airport',
        city: 'Rome',
        iata: 'FCO',
        icao: 'LIRF',
        alt: 13,
        tz: 'Europe/Rome',
        country: 'IT',
        type: 'airport'
      }
    }
  ]
}

Get airports by bounding box

Returns GeoJSON FeatureCollection

GET /airports/bbox/:north,:west/:south,:east
// example get all airports within lat 49, lng 8 and lat 48, lng 7
GET /airports/bbox/49,8/48,7

// filter by country, type, iata, icao
GET /airports/bbox/:north,:west/:south,:east?country=C1,C2&type=t1,t2&iata=1&icao=1
// example get all swiss airfields
GET /airports/bbox/47.54,6.38/45.73,10.77?country=CH&type=airfield

Get airline by IATA code

Returns airline object

GET /airlines/iata/:code
// e.g.
GET /airlines/iata/4u
{
  id: '2548',
  name: 'Germanwings',
  iata: '4U',
  icao: 'GWI',
  callsign: 'GERMAN WINGS',
  active: true,
  country: 'DE'
}

Get airline by ICAO code

GET /airlines/icao/:code

Get airline by callsign

GET /airlines/callsign/:callsign

Search airline by name

Returns Array of airline objects

GET /airlines/search/:search

Data

Data is obtained from openflights under ODBL-1.0 and downloaded as postinstall task.

If you like to improve the data please open an issue here.

License

Unlicense https://unlicense.org