Access Keys:
Skip to content (Access Key - 0)
All CIMA spaces

CIMA

This space

4. Open data format and API

An API is an Application Programming Interface. All sorts of people need FAI data and it should be delivered in a consistent form. FAI needs an API!

This is a very simple example of the sort of data FAI should make available for people to use in their applications.

Select items below to include that data in the resulting XML data output, then press get XML.

You are required to login, use either:

  • username: anonymous password : blank
  • For enhanced data, use your wiki login credentials. What enhanced data is supplied depends on what groups you are a member of in the wiki.

In a web browser this data is presented in a tree-like structure, that is what XML is. You can use the little - and + icons on the left side to collapse and expand different elements in the tree.

To return to this page, simply press the back button.

General stuff
List of FAI members (not guaranteed to be correct)
List of CIMA classes
List of CIMA delegates

Microlight & Paramotor records
WL1T - Weight-shift Control / Landplane / Flown solo / Thermal engine
WL2T - Weight-shift Control / Landplane / Flown with two persons / Thermal engine
AL1T - Movable Aerodynamic Control / Landplane / Flown solo / Thermal engine
AL2T - Movable Aerodynamic Control / Landplane / Flown with two persons / Thermal engine
PF1Tm - Paraglider Control / Foot-launched / Flown solo / Thermal engine / male
PF2T - Paraglider Control / Foot-launched / Flown with two persons / Thermal engine

see the API Reference for full syntax. This includes making it pretty with xsl stylesheets, for example?data=members.america&xsl=1 displays all FAI Members from the Americas in a user-friendly format.

Making it useful

Programmers know how to use XML data like this, but it can also be used directly by desktop programs like Excel. While raw XML can be imported into spreadsheets it is sometimes a little bit complicated, but importing transformed data is child's play with a web-query.

  • In excel 2003, open a new sheet.
  • menu: Data --> import external data --> new web query.
  • Put the URL in the address line (not forgetting the &xsl=1 or &xsl=2 to get the transformed version of the data) and press Go.
  • The page appears, select the range of data you want to import, where in the sheet you want to import it to, and click import.
  • Your data appears in the sheet.
  • To refresh the data, select a cell somewhere in the imported data and click menu: Data --> Refresh Data.

What this is

What you have here is a simple RESTful web service delivering read-only data (Technically, it is a GET). The data itself is presented in a pre-defined xml
format.

Security in this demo is at two levels:

  • Transport across the web is down a secure https 'tunnel'.
  • A login is required, but this can be anonymous for information already in the public domain.

With API's like this it is also possible to send data the other way. (PUT or POST) or DELETE. These options are not currently implemented.

Purpose

The purpose of all this is just a simple demo to show the possibilities of the sort of data FAI should be making available, and a simple API to get it.

Several things will be noticed:

  • No secure data is exposed to unauthenticated logins, eg email addresses. For this sort of thing a level of permissions is required.
  • There should however be a lot more info, eg NAC names Etc which is not contained in this demo database.
  • The primary objective of an API like this is data supply. It is not necessary for it to be able to deliver every possible query, for example the name of the NAC under which a World record was ratified, but it is necessary for it to deliver sufficient data that this could be determined from further processing. In this case the <fai_nation/> field would be used to join the two data sets.
  • Since an API like this is designed to be called often, it is a good idea to have subsets which are capable of delivering reasonably small amounts of data. No point in delivering all 500+ microlight records if only the ones for a single class are needed.
  • All data is encapsulated in a single <fai></fai> structure. While the whole purpose of this sort of thing is that it should be extensible, it would be very wise for FAI to create a basic structure which deals with the core data elements. The range of applications are vast, way more than this little demo and include sporting licences, competition entry lists, tracks, tasks, results... If all FAI associated data had a documented basic core structure then we are well on the way to having something really useful.
  • Standard format allows data to go in different directions with some confidence that it will be understood by the recipient - for example it becomes easy to load competition results in a common format to the FAI website Etc.
  • While it is recommended the <fai/> structure should be used to encapsulate everything possible, it should also be realized that there are some other formats commonly used for some things, eg iCalendar for calendars, RSS for news and .igc for track files.
  • When structured data like this is available, people will start using it in ways FAI never imagined. Since the data we're talking about is all in the public domain already - it can only be a good thing for FAI.

Recommendation

There are many opportunities for structured FAI data, but there is no structure.

It is strongly recommended a FAI wide Working Group is set up to establish this FAI structure.

Further reading

web services
While this experimental API is not compliant, the Atlassian REST API Design Guidelines is a very sensible approach to REST.


Added by Richard Meredith-Hardy Last edited by Richard Meredith-Hardy on 15 Oct, 2012 20:03. Quick links: http://wiki.fai.org/x/BABw or 4. Open data format and API
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
Adaptavist Theme Builder Powered by Atlassian Confluence