Så använder du riksdagens API
Nu har jag hunnit ta en första titt på riksdagens splitternya API och byggt en anspråkslös tillämpning på makthavare.se. För er som inte vet vad ett API är kan det sägas vara ett sätt att dela data mellan olika applikationer och hemsidor.
Om ett inlägg på makthavare.se handlar om en riksdagsledamot kommer det nu att finnas lite information från riksdagens databaser i spalten till höger. Telefonnummer, mejl, valkrets och så. Jag kommer snart även att stoppa in vilka motioner en ledamot har lagt på dennes makthavarsida.
Så, hur använder man då riksdagens API? Om du inte är kodrädd är det ganska enkelt. Vi börjar med att göra en funktion som hämtar ett person-objekt från riksdagen:
# Gör en funktion som tar namnet på en riksdagsledamot som argument
function ge_mig_riksdagsledamoten($namn) {
# Hojta in riksdagens data i ett simpleXML-objekt
$xml = simplexml_load_file('http://data.riksdagen.se/personlista');
# Loopa igenom objektet och stoppa in namnen i variabler
foreach($xml->person->person as $person){
$efternamn = (string) $person->efternamn;
$tilltalsnamn = (string) $person->tilltalsnamn;
# Skicka tillbaka personen som matchar namnet i argumentet
if(strstr($namn, $efternamn) && strstr($namn, $tilltalsnamn)){
return $person;
}
}
}
Nu kan vi göra ut information om en ledamot, men vi kan också använda informationen för att hämta mer information, dokument som den ledamoten varit delaktig i till exempel.
# Gör en funktion som tar en riksdagsledamot och en dokumenttyp som som argument
function ge_mig_dokumenten_for_riksdagsledamoten($person, $dokumenttyp) {
# Här förutsätts att personen är ett person-objekt från riksdagens data
$iid = $person->intressent_id;
# Hojta in riksdagens data med dina argument instoppade
$xml = simplexml_load_file("http://data.riksdagen.se/dokumentlista/?rm=&typ=$dokumenttyp&d=&ts=&parti=&iid=$iid&bet=&org=&kat=&sz=10&sort=c&utformat=xml");
# Skicka tillbaka saker om det finns något
if($xml){return $xml;}
}
Om vi vill ha alla motioner som Berit Adolfsson, den före detta moderata ledamoten från Västra Götalands län skrivit behöver vi bara köra våra funktioner med "Berit Adolfsson" och "mot" som argument ("mot" betyder motion, kolla in riksdagens dokumentation för att se vilka andra dokumenttyper som finns).
# Kör funktionerna
$berit_adolfssons_motioner = ge_mig_dokumenten_for_riksdagsledamoten(ge_mig_riksdagsledamoten('Berit Adolfsson'), 'mot'));
Det finns säkert andra, bättre sätt att göra det här. Om du har någon idé, dela med dig i kommentarerna.
Missa heller inte Anne Brynolfs alternativmedicinmashup och makthavares riksdagsledamotsmashup. Vilka fler tillämningar av riksdags-apit har ni hittat? droppa en kommentar!