SNOWTAM Trial: REST Interface
AIXM XML Developers' Seminar 2 Contents Digital-SNOWTAM Trial Introduction REST Introduction REST in the Digital-SNOWTAM Trial Why it is used Architecture How it is used Example
Digital-SNOWTAM Trial Introduction
Digital SNOWTAM Trial SNOWTAM Message Sample ESSA S ESSA S0 C)01L F)71/71/71 G)01/01/01 H)69/63/60 SFH N)71/GOOD C)08 F)71/71/71 G)01/01/01 H)62/65/68 SFH N)71/GOOD C)01R F)71/71/71 G)01/01/01 H)70/66/68 SFH N)71/GOOD R)7/MEDIUM-GOOD T)RWYS AND TWYS CONT 10 PER CENT. APRONS CONT 25 PER CENT
Scope Originator (Digital NOTAM) Service provider - Briefing - FPL - chart - FMS data - etc. End user - Pilot - Airline OPS - ATC - etc. AIXM 5 (Digital NOTAM) Image Text Application xNOTAM Trial (origination only) xSNOWTAM Trial (end-to-end) Execution: Winter
Trial – application architecture
Digital SNOWTAM Trial ( )
REST Introduction
AIXM XML Developers' Seminar 9 REST Representational State Transfer An architectural style A technology agnostic abstraction The Web is RESTful
AIXM XML Developers' Seminar 10 Key principles Identifiable Resources Representations Hypermedia Uniform Interface Actions – Verbs Client-server Transparency and layering Type of data
AIXM XML Developers' Seminar 11 Resources A resource is a real thing that can be acted upon with a request Anything that can be named and identified can be a resource They are found/identified using URIs Unified Resource Identifier = network address ~ URL Collection URI (../airports ) Member URI ( /airports/732d64d4-cd11 )
AIXM XML Developers' Seminar 12 Resources and time Resources can vary over time. The only thing that must be static is the semantic of the mapping (name).
AIXM XML Developers' Seminar 13 Representations Resources are always accessed through a representation Captures the current or intended state of the resource There can be more than one (html, xml, pdf…) HTTP provides well known/standardized content types and content negotiation
AIXM XML Developers' Seminar 14 Hypermedia Allows access to related resources Master-detail and other connections URIs in hypertext links Links should always be provided by the server Enables seemless evolution and distribution Different application and servers
AIXM XML Developers' Seminar 15 Uniform Interface Once you know a resource’s ID, you can interact with it in a single standard way Limited set of operations (verbs) in HTTP: GET, PUT, POST, DELETE Pre-defined semantics allows for optimizations
AIXM XML Developers' Seminar 16 Actions GET Used to read a resource or as a query Should be side-effect free POST Creates a new resource or invoke arbitrary processing PUT Updates the resource with new data and create it if necessary DELETE Removes the resource
AIXM XML Developers' Seminar 17 Client Server Interactions Interactions in both directions: from and to the server Interactions are stateless: no client context stored on the server between requests
AIXM XML Developers' Seminar 18 Transparency / Layering An application can interact with a resource by knowing two things: the identifier of the resource and the action required. That’s all! How the representation is found should be transparent to the user
REST in the Digital- SNOWTAM Trial
AIXM XML Developers' Seminar 20 Why it is used Support the provision of AIXM 5.1 data to end-user applications The REST interface shall enable digital users to: Query the Digital SNOWTAM database for the list of airports contained in the database and select one of these airports; Get the list of airport’s features for a selected airport; Get the surface contamination records for each such feature; Get the related feature through xlink:href; Get the SNOWTAM text and the free text translation associated with an Airport.
AIXM XML Developers' Seminar 21 Architecture The REST framework used is Struts 2 REST plugin. See for more information.
AIXM XML Developers' Seminar 22 Implementation Only GET is needed for the trial.
AIXM XML Developers' Seminar 23 Workflow In order to interrogate the database: request the list of airports select one airport and use the xlink:href to get the details about this airport select a related feature and use the corresponding xlink:href to get the details about it The xlink:href is a URL compliant to the Digital SNOWTAM REST request structure Use the UUID for subsequent calls
AIXM XML Developers' Seminar 24 Base URL Base: / E.g. Then add a Suffix: /
AIXM XML Developers' Seminar 25 Find Airports Suffix: /airportheliports[?designator= ] There are about airports/heliports in the database so… Optional Parameter: The pattern is of the form [A-Z*]{1,4} where * is the wildcard character. Pattern samples: EB* matches any designator beginning with EB *BBR matches any designator ending in BBR E*R matches any designator beginning with E and ending with R
AIXM XML Developers' Seminar 26 Query an Airport Suffix: /airportheliports/ [?features=yes/no&conta minations=yes/no&date= ] Mandatory parameter: gml:identifier – UUID Optional parameters: date - is the search date&time features - specify if xlink:href pointing to related features must be included in the results, e.g. runways, taxiways, etc contaminations - specify if contaminations must be included or not in the result
Examples
AIXM XML Developers' Seminar 28 1 – Create Contamination Use Bromma to create a contamination
AIXM XML Developers' Seminar 29 2 – Use REST to find the airport accept/airportheliports?designator=ESSBhttp://l-accept-04.pulsar.be/ec-xsnowtam-rest- accept/airportheliports?designator=ESSB
AIXM XML Developers' Seminar 30 3 – Find SNOWTAM Text accept/airportheliports/77a0de0e-277a-4824-a561- 2ba779a3658c?features=yes&contaminations=yeshttp://l-accept-04.pulsar.be/ec-xsnowtam-rest- accept/airportheliports/77a0de0e-277a-4824-a561- 2ba779a3658c?features=yes&contaminations=yes snowtam-icao SW** ESSB (SNOWTAM A)ESSB B) C)12 F)3/2/2 G)1/1/1 H)2/3/3 BRD )
AIXM XML Developers' Seminar 31 4 – Get Airport data accept/airportheliports/77a0de0e-277a-4824-a561- 2ba779a3658c?features=yeshttp://l-accept-04.pulsar.be/ec-xsnowtam-rest- accept/airportheliports/77a0de0e-277a-4824-a561- 2ba779a3658c?features=yes … …
AIXM XML Developers' Seminar Get Runway contamination accept/runways/58ea128d-1bbe-47f6-92fe- a8961b4bf5ee?contaminations=yeshttp://l-accept-04.pulsar.be/ec-xsnowtam-rest- accept/runways/58ea128d-1bbe-47f6-92fe- a8961b4bf5ee?contaminations=yes T09:00:00Z 1 MEDIUM BRD NO 1 WATER 2_THIRD
AIXM XML Developers' Seminar Time based accept/runways/58ea128d-1bbe-47f6-92fe- a8961b4bf5ee?date=9/10/2009%2009:00&contaminations=yes
AIXM XML Developers' Seminar 34 AIXM 5.1 TEMPDELTA and a BASELINE