//
// Code block 1: add new HTML element to the page
//
document.body.innerHTML += "
Wherein we learn some JavaScript tricks.
";
//
// Code block 2: create API request
//
var APIrequest = new XMLHttpRequest();
var query = "karel+appel";
var APIkey = "";
var rijksUrl = "https://www.rijksmuseum.nl/api/nl/collection?key=" + APIkey + "&format=json&ps=100&q=" + query
//
// Code block 3: make API request, show response
//
function makeRequest() {
APIrequest.onreadystatechange = processData;
APIrequest.open('GET', rijksUrl);
APIrequest.send();
}
makeRequest();
function processData() {
if (APIrequest.readyState === 4) {
console.log(APIrequest.responseText);
}
}
//
// Code block 4: make API request, show painting titles
//
function processData() {
if (APIrequest.readyState === 4) {
var data = JSON.parse(APIrequest.responseText);
var objects = data.artObjects;
objects.forEach(function(object) {
console.log(object.title);
});
}
}
makeRequest();
//
// Code block 5: make API request, show production places
//
function processData() {
if (APIrequest.readyState === 4) {
var data = JSON.parse(APIrequest.responseText);
var objects = data.artObjects;
objects.forEach(function(object) {
object.productionPlaces.forEach(function(place) {
console.log(place);
});
});
}
}
makeRequest();
//
// Code block 6: make API request, count production places
//
function processData() {
if (APIrequest.readyState === 4) {
var data = JSON.parse(APIrequest.responseText);
var objects = data.artObjects;
var placeCount = {};
objects.forEach(function(object) {
object.productionPlaces.forEach(function(place) {
if (typeof(placeCount[place]) === 'undefined') {
placeCount[place] = 1;
}
else {
placeCount[place]++;
}
});
});
console.log(placeCount);
}
}
makeRequest();
//
// Code block 7: make API request, make a bar chart
//
function processData() {
if (APIrequest.readyState === 4) {
var data = JSON.parse(APIrequest.responseText);
var objects = data.artObjects;
var placeCount = {};
objects.forEach(function(object) {
object.productionPlaces.forEach(function(place) {
if (typeof(placeCount[place]) === 'undefined') {
placeCount[place] = 1;
}
else {
placeCount[place] += 1;
}
});
});
for (place in placeCount) {
console.log(place);
document.body.innerHTML += "" + place + "
\n";
document.body.innerHTML += "" + placeCount[place] + "
\n";
}
}
}
makeRequest();