Skip to content

Instantly share code, notes, and snippets.

@carwash
Forked from Abbe98/soch.js
Last active March 26, 2018 18:22
Show Gist options
  • Save carwash/63d7bd067eb0802ab278cf018f444a2e to your computer and use it in GitHub Desktop.
Save carwash/63d7bd067eb0802ab278cf018f444a2e to your computer and use it in GitHub Desktop.
Detta är ett ganska minimalt exempel på användning av SOCH
// Detta är ett ganska minimalt exempel på användning av SOCH
// Notera att det saknas felhantering vid HTTP fel
// Notera även att sochSearch() inte stödjer paginering och att den använder presentationsformatet
// Det går att klistra in detta exempel direkt i webbläsarens konsol
// Det går inte att göra frågor från andra HTTPS resurser
// API-nyckel
const apiKey = 'test';
// hjälp funktion för att göra http frågor och parsa JSON
const fetchSoch = async (url) => await (await fetch(url, { headers: new Headers({ 'Accept': 'application/json' }) })).json();
// funktion för att göra en enkel sökning
const sochSearch = async (query) => {
const json = await fetchSoch(`http://kulturarvsdata.se/ksamsok/api?x-api=${apiKey}&method=search&query=${query}&recordSchema=presentation`);
return json.result.records.record.map(r => r['pres:item']);
}
// Hämta ett object via en URI (JSON-LD)
fetchSoch('http://kulturarvsdata.se/raa/bbrp/21620000011565').then(data => {
// snyggt fint JavaScript object
console.log(data);
}).catch(reason => {
// nätverksfel av någon typ
console.error(reason.message);
});
// genomför en sökning efter "runsten"
// här kan du också skriva CQL frågor (item="sten yxa" AND place=gotland)
sochSearch('runsten').then(data => {
// snygg fin JavaScript array med listade object
console.log(data);
}).catch(reason => {
// nätverksfel av någon typ
console.error(reason.message);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment