Gå till innehållet

API

Lagring

Informationen i API:et lagras som länkade data, mer specifikt som RDF. Den kategori av databaser som lämpar sig för att lagra RDF kallas för triplestores. I tjänsten har vi använt plattformen EntryStore som erbjuder en mängd funktionalitet ovanpå en triplestore bland annat för att förenkla utveckling av webbapplikationer och sökgränssnitt.

En viktig egenskap hos EntryStore som används inom det nationella API:et är att man sparar informationen i olika projekt (tekniskt kallas de för context). Dvs alla upplevelser som förvaltas.

API åtkomst

EntryStore erbjuder ett länkade data API för sökning av entiteter. API:et beskrivs i sin helhet på följande webbsida https://entrystore.org/api/. Då API:et är av generell natur och erbjuder en mängd olika sätt att komma åt informationen listar vi nedan ett antal vanliga sökfrågor för att hjälpa utvecklare att komma igång.

Åtkomst till en enskild post:

https://data.visitsweden.com/store/{contextId/metadata/{entryId}

Man kan få ut i olika format via content negotiation eller via en explicit parameter: https://data.visitsweden.com/store/{contextId/metadata/{entryId}?format=application/ld+json

Söka fram alla poster av en viss typ:

API:et tillhandahåller ett paginerat sökgränssnitt där man kan be om alla poster av en viss typ: https://data.visitsweden.com/store/search?type=solr&query=public:true+AND+rdfType:http%5C%3A%2F%2Fschema.org%2FLodgingBusiness&limit=10&rdfFormat=application/ld+json

Notera att parametern public:true är viktig för att effektivisera anropet när man pratar med API:et utan att vara inloggad.

Parameterns limit kan ställas upp som maximalt till 100. För att få nästa uppsättning av sökträffar lägger man till parametern offset:

https://data.visitsweden.com/store/search?type=solr&query=public:true+AND+rdfType:http%5C%3A%2F%2Fschema.org%2FLodgingBusiness&limit=10&offset=10

I exemplet ovan har vi bett att få ut alla boenden genom att be om dess huvudtyp schema:LodgingBusiness. I dagsläget måste man ange dess fulla URI i fältet rdfType. Eftersom frågespråket har en speciell tolkning av kolon måste man escapa det tecknet och sen göra en regelrätt URL escape på resultatet.

JavaScript kod för escapa en huvudtyp som söks i solr fältet rdfType [encodeURIComponent("http\\://schema.org/LodingBusiness")]

Söka fram alla upplevelser:

Här blir det nödvändigt att lista alla huvudtyper med OR mellan. https://data.visitsweden.com/store/search?type=solr&query=public:true+AND+rdfType:http%5C%3A%2F%2Fschema.org%2FFoodEstablishment+OR+rdfType:http%5C%3A%2F%2Fschema.org%2FEvent+OR+rdfType:http%5C%3A%2F%2Fschema.org%2FPlace+OR+rdfType:http%5C%3A%2F%2Fschema.org%2FStore+OR+rdfType:http%5C%3A%2F%2Fschema.org%2FLodgingBusiness+OR+rdfType:http%5C%3A%2F%2Fschema.org%2FTrip&limit=100&rdfFormat=application/ld+json

Söka fram alla bilder:

Sökningen är snarlik de tidigare anropen, enbart en annan rdfType. https://data.visitsweden.com/store/search?type=solr&query=public:true+AND+rdfType:http%5C%3A%2F%2Fschema.org%2FImageObject&limit=10