Gå til hovedinnhold

Fra Gemini til FS GraphQL API

Her finner du informasjon om hvordan du kan gå fram for å migrere fra Gemini til FS GraphQL API.

Konstruer en relevant GraphQL-spørring for henting av data

Gemini har tre moduler, Godkjenning, Person og Felleskoder. Endepunktene i Felleskoder inneholder primært data som er tenkt brukt som grunnlagsdata i Godkjenning og Person. Anbefalt bruk er at man først laster og cacher disse grunnlagsdataene, slik at de er tilgjengelige når man skal gjøre kall mot endepunktene i Godkjenning og Person.

I GraphQL vil du som regel kunne hente grunnlagsdataene i kontekst av hovedspørringen. Det betyr at du ikke nødvendigvis trenger å kunne gjøre API-kall som tilsvarer. Som regel vil du kunne finne en GraphQL-spørring som tilsvarer det du konsumerer fra ett av endepunktene i person- eller godkjenningsmodulen, og som samtidig gir deg grunnlagsdataene du trenger.

For endepunkter i felleskoder-modulen vil vi likevel forsøke å tilby tilsvarende spørringer, for å legge til rette for gradvis overgang for klienter som har behov for det. Idene til objektene i FS GraphQL API er de samme som for tilsvarende objekter i Gemini, så det vil være mulig å bruke disse IDene for å koble dataene sammen.

Les mer om spørringer i FS GraphQL API her: FS GraphQL API: Spørringer

Paginering i FS GraphQL API

FS GraphQL API benytter cursor-basert paginering, på samme måte som Gemini.

Les mer her: FS GraphQL API: Paginering

Skriveoperasjoner er foreløpig ikke erstattet

Skriveoperasjonene vil etter planen etterhvert erstattes med mutasjoner i GraphQL-APIet. Det er ikke planlagt når dette skal gjøres.

Hva om mitt behov ikke er dekket?

Vi vil normalt ikke varsle avvikling av hele eller deler av et API før vi er trygge på at tilsvarende funksjonalitet er på plass i FS GraphQL API. Dersom du likevel opplever at behovet ditt ikke er dekket i det nye APIet, ber vi om at du tar kontakt med fs-support@sikt.no og beskriver behovet.

Gemini vil avvikles gradvis og over tid, etterhvert som funksjonalitet blir tilgjengelig i FS GraphQL API. Det vil si at enkelte klienter må forholde seg til å bruke en kombinasjon av begge APIene i en overgangsperiode.

Kontakt FS-support for hjelp ved behov

Kontakt fs-support@sikt.no dersom du trenger hjelp til å komme i gang, eller underveis i migreringen.

Eksempler

Her vil du finne eksempler på hvordan du kan erstatte endepunkter i Gemini med kall mot FS GraphQL API. Merk at GraphQL gir stor fleksibilitet i hvilke data du kan hente, så bruk eksemplene som utgangspunkt, og konstruer en spørring skreddersydd for ditt behov.

GET /emner

Eksempel på GraphQL-kall som henter emner:

query Emner {
query Emner {
emnerV2(
filter: {eierOrganisasjonskode: "1234"},
first: 10) {
edges {
node {
id
kode
navnAlleSprak {
nb
nn
en
se
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
}

Eksempel på svar:

{
"data": {
"emnerV2": {
"edges": [
{
"node": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement",
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMywx",
"kode": "1BA-113",
"navnAlleSprak": {
"nb": "Treningslære",
"nn": null,
"en": null,
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwx",
"kode": "1BA-121",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null,
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwy",
"kode": "1BA-121",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null,
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwz",
"kode": "1BA-121",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null,
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEzNSwx",
"kode": "1BA-135",
"navnAlleSprak": {
"nb": "Ballspill",
"nn": null,
"en": null,
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEzNiwx",
"kode": "1BA-136",
"navnAlleSprak": {
"nb": "Andre aktiviteter",
"nn": null,
"en": null,
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEzNywx",
"kode": "1BA-137",
"navnAlleSprak": {
"nb": "Uteaktiviteter",
"nn": null,
"en": null,
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsQUtUMjAyLTEsMQ",
"kode": "AKT202-1",
"navnAlleSprak": {
"nb": "Aktivitetslære",
"nn": null,
"en": "Physical Activity Education",
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsRkFIMzQyLDE",
"kode": "FAH342",
"navnAlleSprak": {
"nb": "Aktivitetsformidling III: Aktiviteter i sal",
"nn": null,
"en": null,
"se": null
}
}
}
],
"pageInfo": {
"hasNextPage": true,
"endCursor": "WzEyMzQsMTUwLCJGQUgzNDIiLCIxIl0"
}
}
}
}

GET /institusjoner

Objektet "Institusjon" har byttet navn til "Organisasjon i FS GraphQL API".

Eksempel på kall:

query Organisasjoner {
organisasjoner(
first: 10) {
edges {
node {
id
organisasjonskode
navn {
nb
nn
en
se
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}

Eksempel på svar:

{
"data": {
"organisasjoner": {
"edges": [
{
"node": {
"id": "NDY6MA",
"organisasjonskode": "0",
"navn": {
"nb": "Uniwersytet w Bialymstoku",
"nn": "Nynorsk navn",
"en": "University of Bialystok",
"se": "Samisk navn"
}
}
},
{
"node": {
"id": "NDY6Nw",
"organisasjonskode": "7",
"navn": {
"nb": "Berliner Elektronenspeicherring - Gesellschaft für Synchrotronstrahlung m.b.H.",
"nn": null,
"en": null,
"se": null
}
}
},
{
"node": {
"id": "NDY6MTIz",
"organisasjonskode": "123",
"navn": {
"nb": "%university%",
"nn": null,
"en": null,
"se": null
}
}
},
{
"node": {
"id": "NDY6MTUw",
"organisasjonskode": "150",
"navn": {
"nb": "Norges idrettshøgskole",
"nn": null,
"en": "Norwegian School of Sport Sciences",
"se": null
}
}
},
{
"node": {
"id": "NDY6MTU4",
"organisasjonskode": "158",
"navn": {
"nb": "Handelshøyskolen BI",
"nn": null,
"en": "BI Norwegian Business School",
"se": null
}
}
},
{
"node": {
"id": "NDY6MTc4",
"organisasjonskode": "178",
"navn": {
"nb": "Norges musikkhøgskole",
"nn": null,
"en": "Norwegian Academy of Music",
"se": null
}
}
},
{
"node": {
"id": "NDY6MTg0",
"organisasjonskode": "184",
"navn": {
"nb": "Universitetet i Bergen",
"nn": null,
"en": "University of Bergen",
"se": null
}
}
},
{
"node": {
"id": "NDY6MTg1",
"organisasjonskode": "185",
"navn": {
"nb": "Universitetet i Oslo",
"nn": null,
"en": "University of Oslo",
"se": null
}
}
},
{
"node": {
"id": "NDY6MTg2",
"organisasjonskode": "186",
"navn": {
"nb": "UiT Norges arktiske universitet",
"nn": null,
"en": "UiT The Arctic University of Norway",
"se": "Romssa universitehta"
}
}
},
{
"node": {
"id": "NDY6MTg3",
"organisasjonskode": "187",
"navn": {
"nb": "UKJENT",
"nn": null,
"en": null,
"se": null
}
}
}
],
"pageInfo": {
"hasNextPage": true,
"endCursor": "WzE4N10"
}
}
}
}

GET /land

Eksempel på GraphQL-kall som henter land:

query Land {
land(
first: 10) {
edges {
node {
id
landkodeAlfa3
navnAlleSprak {
nb
nn
en
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}

Eksempel på svar:

{
"data": {
"land": {
"edges": [
{
"node": {
"id": "NjI6MA",
"landkodeAlfa3": "NOR",
"navnAlleSprak": {
"nb": "Norge",
"nn": "Noreg",
"en": "Norway"
}
}
},
{
"node": {
"id": "NjI6MTAx",
"landkodeAlfa3": "DNK",
"navnAlleSprak": {
"nb": "Danmark",
"nn": null,
"en": "Denmark"
}
}
},
{
"node": {
"id": "NjI6MTAy",
"landkodeAlfa3": "GRL",
"navnAlleSprak": {
"nb": "Grønland",
"nn": null,
"en": "Greenland"
}
}
},
{
"node": {
"id": "NjI6MTAz",
"landkodeAlfa3": "FIN",
"navnAlleSprak": {
"nb": "Finland",
"nn": null,
"en": "Finland"
}
}
},
{
"node": {
"id": "NjI6MTA0",
"landkodeAlfa3": "FRO",
"navnAlleSprak": {
"nb": "Færøyene",
"nn": "Færøyane",
"en": "Faroe Islands"
}
}
},
{
"node": {
"id": "NjI6MTA1",
"landkodeAlfa3": "ISL",
"navnAlleSprak": {
"nb": "Island",
"nn": null,
"en": "Iceland"
}
}
},
{
"node": {
"id": "NjI6MTA2",
"landkodeAlfa3": "SWE",
"navnAlleSprak": {
"nb": "Sverige",
"nn": null,
"en": "Sweden"
}
}
},
{
"node": {
"id": "NjI6MTEx",
"landkodeAlfa3": "ALB",
"navnAlleSprak": {
"nb": "Albania",
"nn": null,
"en": "Albania"
}
}
},
{
"node": {
"id": "NjI6MTEy",
"landkodeAlfa3": "BEL",
"navnAlleSprak": {
"nb": "Belgia",
"nn": null,
"en": "Belgium"
}
}
},
{
"node": {
"id": "NjI6MTEz",
"landkodeAlfa3": "BGR",
"navnAlleSprak": {
"nb": "Bulgaria",
"nn": null,
"en": "Bulgaria"
}
}
}
],
"pageInfo": {
"hasNextPage": true,
"endCursor": "WzExM10"
}
}
}
}

GET /organisasjonsenheter

Eksempel på GraphQL-kall som henter organisasjonsenheter:

query Organisasjonsenheter {
organisasjonsenheter(
filter: {
eierOrganisasjonskode: "1234"
}
first: 10) {
edges {
node {
id
navnAlleSprak {
nb
nn
en
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}

Eksempel på svar:

{
"data": {
"organisasjonsenheter": {
"edges": [
{
"node": {
"id": "Nzk6MTIzNCwwLDAsMCww",
"navnAlleSprak": {
"nb": "Uniwersytet w Bialymstoku",
"nn": "Nynorsk Uniwersytet w Bialymstoku",
"en": "University of Bialystok"
}
}
},
{
"node": {
"id": "Nzk6MTIzNCw3LDAsMCww",
"navnAlleSprak": {
"nb": "Berliner Elektronenspeicherring - Gesellschaft für Synchrotronstrahlung m.b.H.",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "Nzk6MTIzNCwxNTAsMCwwLDA",
"navnAlleSprak": {
"nb": "Norges idrettshøgskole",
"nn": null,
"en": "Norwegian School of Sport Sciences"
}
}
},
{
"node": {
"id": "Nzk6MTIzNCwxNTgsMCwwLDA",
"navnAlleSprak": {
"nb": "Handelshøyskolen BI",
"nn": null,
"en": "BI Norwegian Business School"
}
}
},
{
"node": {
"id": "Nzk6MTIzNCwxNzgsMCwwLDA",
"navnAlleSprak": {
"nb": "Norges musikkhøgskole",
"nn": null,
"en": "Norwegian Academy of Music"
}
}
},
{
"node": {
"id": "Nzk6MTIzNCwxNzgsMSwwLDA",
"navnAlleSprak": {
"nb": "Norges musikkhøgskole",
"nn": null,
"en": "Norwegian Academy of Music"
}
}
},
{
"node": {
"id": "Nzk6MTIzNCwxODQsMCwwLDA",
"navnAlleSprak": {
"nb": "Universitetet i Bergen",
"nn": null,
"en": "University of Bergen"
}
}
},
{
"node": {
"id": "Nzk6MTIzNCwxODQsMSwwLDA",
"navnAlleSprak": {
"nb": "Det historisk-filosofiske fakultet, UiB",
"nn": "Det historisk-filosofiske fakultet, UiB",
"en": null
}
}
},
{
"node": {
"id": "Nzk6MTIzNCwxODQsMiwwLDA",
"navnAlleSprak": {
"nb": "Det matematisk-naturvitenskapelige fakultet, UiB",
"nn": "Det matematisk-naturvitskapelege fakultet, UiB",
"en": null
}
}
},
{
"node": {
"id": "Nzk6MTIzNCwxODQsMywwLDA",
"navnAlleSprak": {
"nb": "Det medisinske fakultet, UiB",
"nn": "Det medisinske fakultet, UiB",
"en": null
}
}
}
],
"pageInfo": {
"hasNextPage": true,
"endCursor": "WzEyMzQsMTg0LDMsMCwwXQ"
}
}
}
}

GET /termintyper

Objektet "Termintype" har byttet navn til "Terminbetegnelse" i FS GraphQL API.

Eksempel på kall:

query Terminbetegnelser {
terminbetegnelser(
filter: {
eierOrganisasjonskode: "1234"
}
first: 10) {
edges {
node {
id
navnAlleSprak {
nb
nn
en
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}

Eksempel på svar:

{
"data": {
"terminbetegnelser": {
"edges": [
{
"node": {
"id": "MTE3OjEyMzQsSMOYU1Q",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
{
"node": {
"id": "MTE3OjEyMzQsSMOYVA",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
{
"node": {
"id": "MTE3OjEyMzQsU0Ux",
"navnAlleSprak": {
"nb": "Sekvens 1",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTE3OjEyMzQsU0Uy",
"navnAlleSprak": {
"nb": "Sekvens 2",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTE3OjEyMzQsU09N",
"navnAlleSprak": {
"nb": "Sommer",
"nn": "Sommar",
"en": "Summer"
}
}
},
{
"node": {
"id": "MTE3OjEyMzQsViUyQ0g",
"navnAlleSprak": {
"nb": "Vår, høst",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTE3OjEyMzQsVklU",
"navnAlleSprak": {
"nb": "Vinter",
"nn": "Vinter",
"en": "Winter"
}
}
},
{
"node": {
"id": "MTE3OjEyMzQsVsOFUg",
"navnAlleSprak": {
"nb": "Vår",
"nn": "Vår",
"en": "Spring"
}
}
},
{
"node": {
"id": "MTE3OjEyMzQsVsOFVA",
"navnAlleSprak": {
"nb": "Vår",
"nn": "Vår",
"en": "Spring"
}
}
}
],
"pageInfo": {
"hasNextPage": false,
"endCursor": "WzEyMzQsIlbDhVQiXQ"
}
}
}
}

GET /tidsenheter

Eksempel på GraphQL-kall som henter tidsenheter:

query Tidsenheter {
tidsenheter(
first: 10) {
edges {
node {
id
navnAlleSprak {
nb
nn
en
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}

Eksempel på svar:

{
"data": {
"tidsenheter": {
"edges": [
{
"node": {
"id": "MTE4OjMgTU5EUg",
"navnAlleSprak": {
"nb": "3 mndr",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTE4OkRBR0VS",
"navnAlleSprak": {
"nb": "Dager",
"nn": "Dagar",
"en": "Days"
}
}
},
{
"node": {
"id": "MTE4Ok1JTlVUVEVS",
"navnAlleSprak": {
"nb": "Minutter",
"nn": "Minuttar",
"en": "Minutes"
}
}
},
{
"node": {
"id": "MTE4Ok1ORA",
"navnAlleSprak": {
"nb": "Måneder",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTE4Ok3DhU5FREVS",
"navnAlleSprak": {
"nb": "Måneder",
"nn": "Månader",
"en": "Months"
}
}
},
{
"node": {
"id": "MTE4OlNFTQ",
"navnAlleSprak": {
"nb": "Semester",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTE4OlNFTUVTVFJF",
"navnAlleSprak": {
"nb": "Semestre",
"nn": "Semester",
"en": "Semesters"
}
}
},
{
"node": {
"id": "MTE4OlRJTUVS",
"navnAlleSprak": {
"nb": "Timer",
"nn": "Timar",
"en": "Hours"
}
}
},
{
"node": {
"id": "MTE4OlVLRVI",
"navnAlleSprak": {
"nb": "Uker",
"nn": "Veker",
"en": "Weeks"
}
}
},
{
"node": {
"id": "MTE4OsOFUg",
"navnAlleSprak": {
"nb": "År",
"nn": "År",
"en": "Years"
}
}
}
],
"pageInfo": {
"hasNextPage": false,
"endCursor": "WyLDhVIiXQ"
}
}
}
}

GET /utdanningsplanelementer

Eksempel på GraphQL-kall som henter utdanningsplanelementer:

query Utdanningsplanelementer {
utdanningsplanelementer(first: 10) {
edges {
node {
id
navnAlleSprak {
nb
nn
en
}
vekting {
vektingstype {
navnAlleSprak {
en
nb
nn
}
vektenheterPerSemester
}
verdi
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}

Eksempel på svar:

{
"data": {
"utdanningsplanelementer": {
"edges": [
{
"node": {
"id": "MTI3OjEyMzQsQU1ILVVUVjMw",
"navnAlleSprak": {
"nb": "Utveksling ett semester - musikkstudiet",
"nn": null,
"en": "Utveksling ett semester - music course"
},
"vekting": {
"vektingstype": {
"navnAlleSprak": {
"en": "Credits",
"nb": "Studiepoeng",
"nn": "Poeng"
},
"vektenheterPerSemester": 30
},
"verdi": 30
}
}
},
{
"node": {
"id": "MTI3OjEyMzQsQU1ILVVUVjYw",
"navnAlleSprak": {
"nb": "Utveksling to semestre - musikkstudiet",
"nn": null,
"en": null
},
"vekting": {
"vektingstype": {
"navnAlleSprak": {
"en": "Credits",
"nb": "Studiepoeng",
"nn": "Poeng"
},
"vektenheterPerSemester": 30
},
"verdi": 60
}
}
},
{
"node": {
"id": "MTI3OjEyMzQsQVJUSUtLRUwx",
"navnAlleSprak": {
"nb": "Artikkel",
"nn": null,
"en": null
},
"vekting": {
"vektingstype": {
"navnAlleSprak": {
"en": "Credits",
"nb": "Studiepoeng",
"nn": "Poeng"
},
"vektenheterPerSemester": 30
},
"verdi": 4
}
}
},
{
"node": {
"id": "MTI3OjEyMzQsQVJUSUtLRUwy",
"navnAlleSprak": {
"nb": "Artikkel",
"nn": null,
"en": null
},
"vekting": null
}
},
{
"node": {
"id": "MTI3OjEyMzQsQVJUSUtLRUwz",
"navnAlleSprak": {
"nb": "Artikkel",
"nn": null,
"en": null
},
"vekting": {
"vektingstype": {
"navnAlleSprak": {
"en": "Credits",
"nb": "Studiepoeng",
"nn": "Poeng"
},
"vektenheterPerSemester": 30
},
"verdi": 20
}
}
},
{
"node": {
"id": "MTI3OjEyMzQsQVJUSUtMRVI",
"navnAlleSprak": {
"nb": "Artikler",
"nn": null,
"en": null
},
"vekting": null
}
},
{
"node": {
"id": "MTI3OjEyMzQsQVJUSUtMRVIz",
"navnAlleSprak": {
"nb": "Tre artikler + sammendrag",
"nn": null,
"en": null
},
"vekting": {
"vektingstype": {
"navnAlleSprak": {
"en": "Credits",
"nb": "Studiepoeng",
"nn": "Poeng"
},
"vektenheterPerSemester": 30
},
"verdi": 150
}
}
},
{
"node": {
"id": "MTI3OjEyMzQsQVNUUk8xMTE",
"navnAlleSprak": {
"nb": "Astrophysics 1",
"nn": null,
"en": null
},
"vekting": {
"vektingstype": {
"navnAlleSprak": {
"en": "Credits",
"nb": "Studiepoeng",
"nn": "Poeng"
},
"vektenheterPerSemester": 30
},
"verdi": 10
}
}
},
{
"node": {
"id": "MTI3OjEyMzQsQVNUUk8yMjI",
"navnAlleSprak": {
"nb": "Astrophysics 2",
"nn": null,
"en": null
},
"vekting": {
"vektingstype": {
"navnAlleSprak": {
"en": "Credits",
"nb": "Studiepoeng",
"nn": "Poeng"
},
"vektenheterPerSemester": 30
},
"verdi": 10
}
}
},
{
"node": {
"id": "MTI3OjEyMzQsRk9EU0VM",
"navnAlleSprak": {
"nb": "Fødselspermisjon",
"nn": null,
"en": null
},
"vekting": null
}
}
],
"pageInfo": {
"hasNextPage": true,
"endCursor": "WzEyMzQsIkZPRFNFTCJd"
}
}
}
}

GET /vektingstyper

Eksempal på GraphQL-kall som henter vektingstyper:

query Vektingstyper {
vektingstyper(first: 10) {
edges {
node {
id
navnAlleSprak {
nb
nn
en
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}

Eksempel på svar:

{
"data": {
"vektingstyper": {
"edges": [
{
"node": {
"id": "MTM2OkJU",
"navnAlleSprak": {
"nb": "Belastningstimer",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTM2OkZL",
"navnAlleSprak": {
"nb": "Forkurspoeng",
"nn": "Poeng",
"en": "Credits"
}
}
},
{
"node": {
"id": "MTM2OkZQ",
"navnAlleSprak": {
"nb": "Fagskolepoeng",
"nn": "Poeng",
"en": "Credits"
}
}
},
{
"node": {
"id": "MTM2OlBS",
"navnAlleSprak": {
"nb": "Belastningsprosent",
"nn": "Prosent",
"en": null
}
}
},
{
"node": {
"id": "MTM2OlNQ",
"navnAlleSprak": {
"nb": "Studiepoeng",
"nn": "Poeng",
"en": "Credits"
}
}
},
{
"node": {
"id": "MTM2OlNU",
"navnAlleSprak": {
"nb": "Semestertimer",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTM2OlZB",
"navnAlleSprak": {
"nb": "Varighet",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTM2OlZU",
"navnAlleSprak": {
"nb": "Vekttall",
"nn": "Vektal",
"en": "Points"
}
}
}
],
"pageInfo": {
"hasNextPage": false,
"endCursor": "WyJWVCJd"
}
}
}
}