De bouwstenen van de webpagina's

Ieder van ons bezoekt websites, social media op het wereldwijde web. De inhouden die we gepresenteerd krijgen, zijn een combinatie van HTML (inhoud, structuur, links), CSS (opmaak, animaties) en javascript (interactie). Die drie "talen" vormen de bouwblokken van wat we in onze browsers te zien krijgen. 

Een groot deel van de informatie en de inhouden achter al die websites en webservices wordt echter bewaard in online databanken. Met behulp van "backendtechnologieën" zoals PHP, Node.JS, Java... worden die databankrecords omgetoverd in webpagina's. 



HTML is niet de enige output

Een aantal grotere online platformen bieden ook nog andere outputformaten aan dan enkel HTML. Zo kan je bijvoorbeeld gegevens uit Wikipedia plukken in de vorm van JSON-data. Dat is vooral handig als je je eigen software wil ontwikkelen die gegevens uit andere websites wil gebruiken. In sommige gevallen mag dit gratis, in andere gevallen moet je voor zo'n dienst betalen. Na betaling krijg je een authenticatiesleutel die je in je programmeercode moet opnemen. 

Om de gegevens op te vragen, volstaat het vaak om een URL op de correcte manier op te bouwen. De techniek om informatie op te vragen in gestandaardiseerde en/of gestructureerde formaten, heet REST (Representational state transfer).

Doe de test met REST

Om handig van REST gebruik te kunnen maken moet je weten hoe een URL van een webpagina is opgebouwd. Via de URL kan je in veel gevallen een zoekopdracht uitvoeren in de achterliggende databank.

Als je in Google zoekt naar "ucll" en op de zoekknop drukt, verschijnt in de adresbalk de volgende URL:

https://www.google.be/search?safe=off&sxsrf=ACYBGNRxaumzC8SvVTsipHrNLzXv9-iP_Q%3A1570048077035&source=hp&ei=TAiVXaXVO5KmwQKJq4-YAg&q=ucll&oq=ucll&gs_l=psy-ab.3..35i39j0i131j0l8.3582.4016..4193...0.0..0.82.245.4......0....1..gws-wiz.......0i131i67.jtGR6yVwP50&ved=0ahUKEwilq6LvtP7kAhUSU1AKHYnVAyMQ4dUDCAY&uact=5

Na de domeinnaam www.google.be/ volgt de webpagina of webservice met de naam "search" en een vraagteken. Als je goed kijkt naar alles wat er achter het vraagteken verschijnt, zie je sleutel- en waardeparen, gescheiden door een "&"-teken. 

Voor ons zijn de volgende sleutel-waardeparen interessant: 

SleutelWaarde
oqucll
qucll
......

We kunnen nu zelf links prepareren:

https://www.google.be/search?q=UW ZOEKTERM

Je zal merken dat die link perfect werkt, zonder al die andere parameters uit de vorige link. Cool, we hebben de REST-api van de Google Search Engine gebruikt om zoekresultaten op maat te genereren.

REST met andere outputformaten

Google Books

Basis-URL: https://www.googleapis.com/books/v1/volumes?

Sleutel Waarde
qeen zoekterm (string of tekenreeks)
maxResults
het aantal resultaten dat je wil krijgen (integer = geheel getal)
startIndex
het punt vanaf waar je wil starten (integer = geheel getal)
Voorbeeld: https://www.googleapis.com/books/v1/volumes?q=Kris%20Merckx%20in%20geen%20tijd&maxResults=1&startIndex=0


Voorbeeld van een "bookservice" gebouwd met de Google Books API: https://www.drukhier.be/booksprint/apps/biblio/bib.php?search=Kris+Merckx+in+geen+tijd



Wikipedia

Basis-URL: http://nl.wikipedia.org/w/api.php?

SleutelWaarde
actionquery
listsearch
srsearch
een zoekterm (string of tekenreeks)
formatjsonfm ...
Voorbeeld: http://nl.wikipedia.org/w/api.php?action=query&list=search&srsearch=Charles Darwin&format=jsonfm

Open Street Maps

Basis-URL: https://nominatim.openstreetmap.org/search?

SleutelWaarde
formathtml, xml, json, jsonv2, geojson, geocodejson
streethuisnummer straatnaam
citygemeente
countylandstreek of provincie
state(deel)staat
countryland
postalcodepostcode
qeen zoekterm (string of tekenreeks)
Voorbeeld: https://nominatim.openstreetmap.org/search?format=geocodejson&street=77%20Processieweg&city=Hakendover&postalcode=3300

Belangrijk om weten

1. De volgorde van de sleutels in de bouw van de URL is van geen belang.

2. Niet alle sleutels zijn verplicht. Sommige zijn echter wel noodzakelijk. Dat merk je wel door er wat mee te spelen.

Oefening

De lector geeft je tijdens de les een aantal opdrachten. De oplossingen/antwoorden zal je moeten uploaden op het einde van de les.

Kris Merckx - 2019

home