Uthenting av alle data
I en del tilfeller er man interessert i å hente ut alt av data fra KL06 og plassere disse i sin egen datakilde. Man kan da traverse de elementene man er interesserte i og trekke ut relevant informasjon.
C#
SOAP
public async Task HentAlleLæreplaner()
{
var client = new GrepSoapClient();
var læreplaner = await client.FinnPlanerAsync(null); // Null som argument gir tilbake alle
foreach (var laereplansoekeresultat in læreplaner.treff)
{
var læreplan =
client.HentPlanFraKode(new hentlaereplanfrakoderequest {Kode = laereplansoekeresultat.kode});
Debug.WriteLine(læreplan.kode + " " + læreplan.tittel.First(t => t.spraak == "default").verdi);
}
}
Rest
{
var client = new HttpClient();
// Bruker autogenererte klasser fra Soap-referanse. Her kan man også bruke egne klasser eller dynamic
var læreplaner = JsonConvert.DeserializeObject<List<laereplansoekeresultat>>(await client.GetStringAsync("http://data.udir.no/kl06/laereplaner"));
foreach (var laereplansoekeresultat in læreplaner)
{
var læreplan = JsonConvert.DeserializeObject<laereplan>(await client.GetStringAsync(laereplansoekeresultat.urldata));
Debug.WriteLine(læreplan.kode + " " + læreplan.tittel.First(t => t.spraak == "default").verdi);
}
Javascript
Soap anbefales ikke som protokoll i javascript da REST/JSON-formatet er enklere å behandle
Rest
Dette eksempelet bruker JQuery.
var hent = function(endepunkt) {
return $.get(endepunkt).then(
function(res) {
return res;
}
);
};
var hentLæreplanliste = function() {
return hent('http://data.udir.no/kl06/laereplaner');
};
var traverserLæreplaner = function () {
hentLæreplanliste().then(function(læreplaner) {
for (var i = 0; i < læreplaner.length; i++) {
hentSpesifikkLæreplan(læreplaner[i]['url-data']);
}
});
}
var hentSpesifikkLæreplan = function (url) {
hent(url).then(function(læreplan) {
console.log(_.find(læreplan.tittel, function(tittel) {
return tittel.noekkel == 'default';
}).verdi);
}, function(feil) {
console.log(feil);
});
}