Christian Heilmann

Turning a web folder with data into an API using YQL execute

Monday, November 30th, 2009 at 1:00 pm

Yesterday Johan Bouveng challenged me on Facebook with another brain teaser. Johan had found a nice resource for weather forecasts for airports. The data came back in TAF or METAR formats and he already had a parser for this (thank f*** – what a mess these formats). Now, what he wanted to have is an API to get the weather forecast data from the following resources:

Using YQL and YQL execute this was pretty easy. All I had to do was to write an open table that reads the correct file.

// check if taf or metar was requested or return an error
if(datatype  'taf' || datatype  ‘metar’){
var returnobj,url;

// get the correct url using the airport ID and format
if(datatype==’metar’){
url = ‘http://weather.noaa.gov/pub/data/observations/’ +
‘metar/stations/’ + airportid + ‘.TXT’
} else {
url = ‘http://weather.noaa.gov/pub/data/forecasts/’+
‘taf/stations/’ + airportid +’.TXT’;
}

// do a REST call and get the response back
var out = y.rest(url).get().response;

// if there is no data returned, return an error.
if(out == ‘’){
returnobj = Airport {airportid} not found.;

// otherwise return the data in the TXT file
} else {
returnobj = {out};
}
} else{
// error condition for wrong datatype
returnobj = Datatype must be either taf or metar.;
}

// give back the data to YQL
response.object = returnobj;

Having done this you can now use it as a table in YQL:

use "http://isithackday.com/hacks/airportweather/airportweather.xml" as aw;
select * from aw where airportid="AAXX" and datatype="taf";

As you can see, you don’t have to be a genius to build your own API :)

Tags: , , , , ,

Share on Mastodon (needs instance)

Share on BlueSky

Newsletter

Check out the Dev Digest Newsletter I write every week for WeAreDevelopers. Latest issues:

Word is Doomed, Flawed LLM benchmarks, hard sorting and CSS mistakes Spot LLM benchmark flaws, learn why sorting is hard, how to run Doom in Word and how to say "no" like a manager.
30 years of JS, Browser AI, how attackers use GenAI, whistling code Learn how to use AI in your browser and not on the cloud, why AI makes different mistakes than humans and go and whistle up some code!
197: Dunning-Kruger steroids, state of cloud security, puppies>beer
196: AI killed devops, what now? LLM Political bias & AI security Learn how AI killed DevOps, create long tasks in JS, why 1 in 5 security breaches are AI generated code & play "The Scope Creep"
195: End of likes, JS Zoo and Tim Berners-Lee doesn't see AI vs Web Meta kills like buttons, Tim-Berners-Lee thinks AI won't kill the web, GitHub is ending toasts and the worst selling Microsoft product.

My other work: