Gå til hovedinnhold

Fra FSWS-CRUD til FS GraphQL API

FSWS CRUD API er en tjeneste som er under utfasing og erstattes av FS GraphQL API. Dette er en guide for å migrere fra FSWS CRUD API til FS GraphQL API. Listen med eksempler under er ikke komplett. Ta kontakt med fs-support@sikt.no dersom du trenger hjelp til å finne en spørring eller en mutasjon som passer ditt behov.

Forskjeller og likheter

Både FSWS-CRUD og FS GraphQL API tar imot forespørsler i form av POST-kall. FSWS-CRUD tar imot payloaden i form av XML som parameter i POST-kallet. FS GraphQL API tar imot spørringer i GraphQL-spørrespråket i payloaden til POST-kallet. Der FSWS-CRUD har ett endepunkt for SELECTMANY og ett for UPSERT, har FS GraphQL API ett endepunkt for alle forespørsler. Der FSWS-CRUD bruker samme skjema for SELECTMANY og UPSERT, vil skjema for spørringer og skjema for mutasjoner i GraphQL ofte være forskjellig.

SELECTMANY

For å migrere fra SELECTMANY i FSWS-CRUD til FS GraphQL API, må du utforske APIet for å finne en passende spørring. Du vil ofte finne en spørring som gir omtrent samme data med omtrent samme filtreringsmuligheter i FS GraphQL API. Der FSWS-CRUD ofte krever at du slår opp sekvensielt mot én tabell av gangen for å bygge opp datasettet ditt, vil du i FS GraphQL API kunne bygge opp nøstede spørringer som henter hele datasettet. Eksemplene under viser GraphQL-spørringer som tilsvarer SELECTMANY-spørringer mot enkelte tabeller i FSWS-CRUD. Vi anbefaler at du bruker disse som utgangspunkt for å konstruere nøstede spørringer. Der du i FSWS-CRUD kan hente et stort antall rader i ett kall, må du i FS GraphQL API ofte paginere spørringen for å hente alle radene.

SELECTMANY Emne

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"
}
}
}
}

SELECTMANY Fagperson

Eksempel kommer

SELECTMANY Kullklassestudent

"Kullklassestudent" heter "klassemedlemskap" i FS GraphQL API.

Eksempel på spørring som henter ut alle studenter med aktive medlemskap i en klasse (se SELECTMANY Kullklasse over for eksempel på hvordan du finner ID for en klasse):

query studenterIKlasse {
klassemedlemskap(
filter:{
klasser:["NTk6MTIzNCwzMCwxOTk1LEjDmFNULDMwM0sx"],
erAktiv: true
}
first: 10
) {nodes {
id
studentVedLarested {
id
studentnummer
}
}}}

Eksempel på svar:

{
"data": {
"klassemedlemskap": {
"nodes": [
{
"id": "NjA6MTIzNCw5NTMsMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NTM",
"studentnummer": "000052"
}
},
{
"id": "NjA6MTIzNCw5NTQsMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NTQ",
"studentnummer": "000054"
}
},
{
"id": "NjA6MTIzNCw5NTUsMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NTU",
"studentnummer": "000055"
}
},
{
"id": "NjA6MTIzNCw5NTYsMzAsSMOYU1QsMTk5NCxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NTY",
"studentnummer": "000056"
}
},
{
"id": "NjA6MTIzNCw5NTcsMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NTc",
"studentnummer": "000057"
}
},
{
"id": "NjA6MTIzNCw5NTgsMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NTg",
"studentnummer": "000059"
}
},
{
"id": "NjA6MTIzNCw5NTksMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NTk",
"studentnummer": "000060"
}
},
{
"id": "NjA6MTIzNCw5NjAsMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NjA",
"studentnummer": "000061"
}
},
{
"id": "NjA6MTIzNCw5NjEsMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NjE",
"studentnummer": "000062"
}
},
{
"id": "NjA6MTIzNCw5NjIsMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NjI",
"studentnummer": "000063"
}
}
]
}
}
}

SELECTMANY Person

Eksempel kommer

SELECTMANY Persontelefon

Eksempel kommer

SELECTMANY Soknad

Eksempel kommer

SELECTMANY Soknadsalternativ

Eksempel kommer

SELECTMANY Student

Eksempel kommer

SELECTMANY Studentvurdkombprotokoll

Studentvurdkombprotokoll heter "Resultat" i FS GraphQL API. Du kan hente ut studentvurderingsprotokoller med en spørring som denne:

query Resultater {
resultater(
filter: {
eierOrganisasjonskode: "1234"
}
first: 10
) {
nodes {
id
vurderingsenhet {
id
vurderingsperiode {
id
arstall
navnAlleSprak {
nb
nn
en
}
}
emne {
id
kode
versjonskode
}
}
karakter {
navnAlleSprak {
nb
en
nn
}
tall
}
}
}
}

Eksempel på svar:

{
"data": {
"resultater": {
"nodes": [
{
"id": "MjAyOjEyMzQsODgzLDE4NCxFWFBISUwsICxTUywxOTk1LDA2",
"vurderingsenhet": {
"id": "MTM5OjEyMzQsU1MsMTg0LEVYUEhJTCwgLDE5OTUsMDY",
"vurderingsperiode": {
"id": "MTQ4OjEyMzQsMTk5NSwwNg",
"arstall": 1995,
"navnAlleSprak": {
"nb": "06",
"nn": "06",
"en": "06"
}
},
"emne": {
"id": "MjA6MTIzNCwxODQsRVhQSElMLCA",
"kode": "EXPHIL",
"versjonskode": " "
}
},
"karakter": {
"navnAlleSprak": {
"nb": "tre-null",
"en": "Passed",
"nn": "Stått"
},
"tall": 3
}
},
{
"id": "MjAyOjEyMzQsODgzLDE4NCxFWFBISUwsICxTUy0xLDE5OTUsMDY",
"vurderingsenhet": {
"id": "MTM5OjEyMzQsU1MtMSwxODQsRVhQSElMLCAsMTk5NSwwNg",
"vurderingsperiode": {
"id": "MTQ4OjEyMzQsMTk5NSwwNg",
"arstall": 1995,
"navnAlleSprak": {
"nb": "06",
"nn": "06",
"en": "06"
}
},
"emne": {
"id": "MjA6MTIzNCwxODQsRVhQSElMLCA",
"kode": "EXPHIL",
"versjonskode": " "
}
},
"karakter": {
"navnAlleSprak": {
"nb": "to-seks",
"en": null,
"nn": null
},
"tall": 2.6
}
},
{
"id": "MjAyOjEyMzQsODgzLDE4NCxFWFBISUwsICxTUy0yLDE5OTUsMDY",
"vurderingsenhet": {
"id": "MTM5OjEyMzQsU1MtMiwxODQsRVhQSElMLCAsMTk5NSwwNg",
"vurderingsperiode": {
"id": "MTQ4OjEyMzQsMTk5NSwwNg",
"arstall": 1995,
"navnAlleSprak": {
"nb": "06",
"nn": "06",
"en": "06"
}
},
"emne": {
"id": "MjA6MTIzNCwxODQsRVhQSElMLCA",
"kode": "EXPHIL",
"versjonskode": " "
}
},
"karakter": {
"navnAlleSprak": {
"nb": "to-seks",
"en": null,
"nn": null
},
"tall": 2.6
}
},
{
"id": "MjAyOjEyMzQsODg3LDE5NCxTSUE1MDM5LDEsT0JMMSwyMDA1LDEy",
"vurderingsenhet": {
"id": "MTM5OjEyMzQsT0JMMSwxOTQsU0lBNTAzOSwxLDIwMDUsMTI",
"vurderingsperiode": {
"id": "MTQ4OjEyMzQsMjAwNSwxMg",
"arstall": 2005,
"navnAlleSprak": {
"nb": "12",
"nn": "12",
"en": "12"
}
},
"emne": {
"id": "MjA6MTIzNCwxOTQsU0lBNTAzOSwx",
"kode": "SIA5039",
"versjonskode": "1"
}
},
"karakter": {
"navnAlleSprak": {
"nb": "Godkjent",
"en": "Approved",
"nn": "Godkjend"
},
"tall": 0.8
}
},
{
"id": "MjAyOjEyMzQsODg3LDE5NCxTSUE1MDM5LDEsUywyMDA1LDEy",
"vurderingsenhet": {
"id": "MTM5OjEyMzQsUywxOTQsU0lBNTAzOSwxLDIwMDUsMTI",
"vurderingsperiode": {
"id": "MTQ4OjEyMzQsMjAwNSwxMg",
"arstall": 2005,
"navnAlleSprak": {
"nb": "12",
"nn": "12",
"en": "12"
}
},
"emne": {
"id": "MjA6MTIzNCwxOTQsU0lBNTAzOSwx",
"kode": "SIA5039",
"versjonskode": "1"
}
},
"karakter": {
"navnAlleSprak": {
"nb": "B",
"en": null,
"nn": null
},
"tall": 64
}
},
{
"id": "MjAyOjEyMzQsODg4LDE5MSxFTkcxMTAsMSxTLDIwMDUsMTI",
"vurderingsenhet": {
"id": "MTM5OjEyMzQsUywxOTEsRU5HMTEwLDEsMjAwNSwxMg",
"vurderingsperiode": {
"id": "MTQ4OjEyMzQsMjAwNSwxMg",
"arstall": 2005,
"navnAlleSprak": {
"nb": "12",
"nn": "12",
"en": "12"
}
},
"emne": {
"id": "MjA6MTIzNCwxOTEsRU5HMTEwLDE",
"kode": "ENG110",
"versjonskode": "1"
}
},
"karakter": {
"navnAlleSprak": {
"nb": "A",
"en": null,
"nn": null
},
"tall": 65
}
},
{
"id": "MjAyOjEyMzQsODg4LDE5MSxFTkcxMTAsMSxTLTEsMjAwNSwxMg",
"vurderingsenhet": {
"id": "MTM5OjEyMzQsUy0xLDE5MSxFTkcxMTAsMSwyMDA1LDEy",
"vurderingsperiode": {
"id": "MTQ4OjEyMzQsMjAwNSwxMg",
"arstall": 2005,
"navnAlleSprak": {
"nb": "12",
"nn": "12",
"en": "12"
}
},
"emne": {
"id": "MjA6MTIzNCwxOTEsRU5HMTEwLDE",
"kode": "ENG110",
"versjonskode": "1"
}
},
"karakter": {
"navnAlleSprak": {
"nb": "A",
"en": null,
"nn": null
},
"tall": 65
}
},
{
"id": "MjAyOjEyMzQsODg4LDE5MSxFTkcxMTAsMSxTLTIsMjAwNSwxMg",
"vurderingsenhet": {
"id": "MTM5OjEyMzQsUy0yLDE5MSxFTkcxMTAsMSwyMDA1LDEy",
"vurderingsperiode": {
"id": "MTQ4OjEyMzQsMjAwNSwxMg",
"arstall": 2005,
"navnAlleSprak": {
"nb": "12",
"nn": "12",
"en": "12"
}
},
"emne": {
"id": "MjA6MTIzNCwxOTEsRU5HMTEwLDE",
"kode": "ENG110",
"versjonskode": "1"
}
},
"karakter": {
"navnAlleSprak": {
"nb": "B",
"en": null,
"nn": null
},
"tall": 64
}
},
{
"id": "MjAyOjEyMzQsODg5LDIwOSw0QUZCLDEsU00sMjAwNSwxMg",
"vurderingsenhet": {
"id": "MTM5OjEyMzQsU00sMjA5LDRBRkIsMSwyMDA1LDEy",
"vurderingsperiode": {
"id": "MTQ4OjEyMzQsMjAwNSwxMg",
"arstall": 2005,
"navnAlleSprak": {
"nb": "12",
"nn": "12",
"en": "12"
}
},
"emne": {
"id": "MjA6MTIzNCwyMDksNEFGQiwx",
"kode": "4AFB",
"versjonskode": "1"
}
},
"karakter": {
"navnAlleSprak": {
"nb": "C",
"en": null,
"nn": null
},
"tall": 63
}
},
{
"id": "MjAyOjEyMzQsODg5LDIwOSw0QUZCLDEsU00tMiwyMDA1LDEy",
"vurderingsenhet": {
"id": "MTM5OjEyMzQsU00tMiwyMDksNEFGQiwxLDIwMDUsMTI",
"vurderingsperiode": {
"id": "MTQ4OjEyMzQsMjAwNSwxMg",
"arstall": 2005,
"navnAlleSprak": {
"nb": "12",
"nn": "12",
"en": "12"
}
},
"emne": {
"id": "MjA6MTIzNCwyMDksNEFGQiwx",
"kode": "4AFB",
"versjonskode": "1"
}
},
"karakter": {
"navnAlleSprak": {
"nb": "A",
"en": null,
"nn": null
},
"tall": 65
}
}
]
}
}
}

SELECTMANY Studieprogram

Eksempel på spørring som henter alle studieprogrammer:

query Studieprogrammer {
studieprogramV2(
filter: {
eierOrganisasjonskode: "1234"
}
first: 3
) {
nodes {
id
kode
navnAlleSprak {
nb
nn
en
}
}
}
}

Eksempel på svar:

{
"data": {
"studieprogramV2": {
"nodes": [
{
"id": "MTA2OjEyMzQsMTA",
"kode": "10",
"navnAlleSprak": {
"nb": "Sivilarkitektstudiet ved NTNU",
"nn": "k",
"en": null
}
},
{
"id": "MTA2OjEyMzQsQUxN",
"kode": "ALM",
"navnAlleSprak": {
"nb": "4-årig allmennlærerutdanning",
"nn": null,
"en": null
}
},
{
"id": "MTA2OjEyMzQsQUxNTMOGUg",
"kode": "ALMLÆR",
"navnAlleSprak": {
"nb": "Almennlærerutdanning HSH",
"nn": null,
"en": null
}
}
]
}
}
}

SELECTMANY Studieprogramstudent

Studieprogramstudent kalles "ProgramStudierett" i FS GraphQL API.

Eksempel på spørring som henter alle programStudieretter:

query MyQuery {
programStudieretter(
filter: {
eierOrganisasjonskode: "1234"
aktivStatus: [FREMTIDIG, AKTIV, AVSLUTTET]
}
first: 10
) {
edges {
node {
id
studieprogram {
id
navnAlleSprak {
nb
nn
en
}
}
studierettperiode {
fraDato
tilDato
}
student {
studentnummer
}
}
}
}
}

Merk at aktivStatus-filteret har standardverdi AKTIV. Hvis du ikke oppgir noe her, får du bare tilbake studieretter som er aktive på spørretidspunktet.

Eksempel på svar:

{
"data": {
"programStudieretter": {
"edges": [
{
"node": {
"id": "MTU0OjEyMzQsODgzLDJLUkxCMiwyMDI0LEjDmFNU",
"studieprogram": {
"id": "MTA2OjEyMzQsMktSTEIy",
"navnAlleSprak": {
"nb": "KRISTENDOMS- RELIGIONS- OG LIVSSYNSKUNNSKAP",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "2024-08-01",
"tilDato": null
},
"student": {
"studentnummer": "000114"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsODkzLEJBQ0gtw5hLQURNLDIwMDUsSMOYU1Q",
"studieprogram": {
"id": "MTA2OjEyMzQsQkFDSC3DmEtBRE0",
"navnAlleSprak": {
"nb": "Bachelor i økonomi og administrasjon",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "2005-08-01",
"tilDato": null
},
"student": {
"studentnummer": "100522"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsOTAyLEJBU1ksMjAwNSxIw5hTVA",
"studieprogram": {
"id": "MTA2OjEyMzQsQkFTWQ",
"navnAlleSprak": {
"nb": "Bachelor i sykepleie",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "2005-08-01",
"tilDato": null
},
"student": {
"studentnummer": "100499"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsOTA2LEFMUkVBTC1IU1QsMTk5OCxWw4VS",
"studieprogram": {
"id": "MTA2OjEyMzQsQUxSRUFMLUhTVA",
"navnAlleSprak": {
"nb": "Allmenlærerutd. med realfag",
"nn": "Allmenlærarutd. med realfag",
"en": null
}
},
"studierettperiode": {
"fraDato": "1998-01-01",
"tilDato": null
},
"student": {
"studentnummer": "000401"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsOTA2LEhJU1RGSUwsMTk5NSxIw5hTVA",
"studieprogram": {
"id": "MTA2OjEyMzQsSElTVEZJTA",
"navnAlleSprak": {
"nb": "Historisk-filosofisk studium, UiO",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "1995-08-12",
"tilDato": null
},
"student": {
"studentnummer": "000401"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsOTA2LFNQUDJBLDIwMDEsSMOYU1Q",
"studieprogram": {
"id": "MTA2OjEyMzQsU1BQMkE",
"navnAlleSprak": {
"nb": "Spesialpedagogikk 2 avd., linje A, UiO",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "2002-08-02",
"tilDato": null
},
"student": {
"studentnummer": "000401"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsOTA3LEZSQU5TSy1VSU8sMTk5NyxIw5hTVA",
"studieprogram": {
"id": "MTA2OjEyMzQsRlJBTlNLLVVJTw",
"navnAlleSprak": {
"nb": "Fransk hovedfag",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "1997-08-02",
"tilDato": null
},
"student": {
"studentnummer": "000002"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsOTA3LEhJU1RGSUwsMTk5NSxIw5hTVA",
"studieprogram": {
"id": "MTA2OjEyMzQsSElTVEZJTA",
"navnAlleSprak": {
"nb": "Historisk-filosofisk studium, UiO",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "1995-08-15",
"tilDato": null
},
"student": {
"studentnummer": "000002"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsOTA4LEZSQU5TSy1VSU8sMTk5OSxIw5hTVA",
"studieprogram": {
"id": "MTA2OjEyMzQsRlJBTlNLLVVJTw",
"navnAlleSprak": {
"nb": "Fransk hovedfag",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "1999-10-11",
"tilDato": null
},
"student": {
"studentnummer": "000003"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsOTA4LEZZU0lPLUhPUywxOTk3LEjDmFNU",
"studieprogram": {
"id": "MTA2OjEyMzQsRllTSU8tSE9T",
"navnAlleSprak": {
"nb": "Fysioterapistudiet, HiOslo",
"nn": "Fysioterapistudiet, HiOslo",
"en": null
}
},
"studierettperiode": {
"fraDato": "1997-08-15",
"tilDato": null
},
"student": {
"studentnummer": "000003"
}
}
}
]
}
}
}

Du kan hente programstudieretter for et gitt fødselsnummer slik:

query MyQuery {
programStudieretter(
filter: {
eierOrganisasjonskode: "1234"
aktivStatus: [FREMTIDIG, AKTIV, AVSLUTTET]
fodselsnumre: "XXXXXXXXXXX"
}
first: 10
) {
edges {
node {
id
studieprogram {
id
navnAlleSprak {
nb
nn
en
}
}
studierettperiode {
fraDato
tilDato
}
student {
studentnummer
}
}
}
}
}

Eksempel på svar:

{
"data": {
"programStudieretter": {
"edges": [
{
"node": {
"id": "MTU0OjEyMzQsODgzLDJLUkxCMiwyMDI0LEjDmFNU",
"studieprogram": {
"id": "MTA2OjEyMzQsMktSTEIy",
"navnAlleSprak": {
"nb": "KRISTENDOMS- RELIGIONS- OG LIVSSYNSKUNNSKAP",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "2024-08-01",
"tilDato": null
},
"student": {
"studentnummer": "000114"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsODgzLFNPU8OYSy1VSU8sMTk5NyxWw4VS",
"studieprogram": {
"id": "MTA2OjEyMzQsU09Tw5hLLVVJTw",
"navnAlleSprak": {
"nb": "Sosialøkonomi hovedfag",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "1997-02-11",
"tilDato": "1999-12-30"
},
"student": {
"studentnummer": "000114"
}
}
}
]
}
}
}

SELECTMANY Undervisningsmelding

Undervisningsmeldinger brukes til å ta opp studenter til emner i FS. I FS GraphQL API har vi splittet denne tabellen i to, én for emnestudieretter, og én for emnesøknader. Emnesøknader inneholder alle undervisningsmeldinger, men kun de kolonnene som er relevante for opptak. Emnestudieretter inneholder bare undervisningsmeldinger for de studentene som har fått opptak, og bare de kolonnene som er relevante for gjennomføring av undervising. Det er imidlertid mulig å nøste disse inni hverandre for å få samme data som i FSWS-CRUD. Du må velge den spørringen som gir mest relevant filtrering for ditt bruk.

Eksempel på spørring som henter alle emnesøknader:

query EmneSoknader {
emneSoknader(
filter: {
eierOrganisasjonskode: "1234"
}
first: 10
) {
edges {
node {
id
student {
personProfil {
id
fodselsnummer
}
}
emne {
id
kode
versjonskode
navnAlleSprak {
nb
nn
en
}
}
termin {
id
arstall
betegnelse {
kode
navnAlleSprak {
nb
nn
en
}
}
}
terminnummer
soknadsstatus
}
}
}
}

Eksempel på svar:

{
"data": {
"emneSoknader": {
"edges": [
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDkzOA",
"student": {
"personProfil": {
"id": "NzY6MTIzNCw5Mzg",
"fodselsnummer": "02537490368"
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDk0OQ",
"student": {
"personProfil": {
"id": "NzY6MTIzNCw5NDk",
"fodselsnummer": "31587290521"
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDEwNTk",
"student": {
"personProfil": {
"id": "NzY6MTIzNCwxMDU5",
"fodselsnummer": "13587890563"
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDEwNzc",
"student": {
"personProfil": {
"id": "NzY6MTIzNCwxMDc3",
"fodselsnummer": "14578990047"
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDE0OTg",
"student": {
"personProfil": {
"id": "NzY6MTIzNCwxNDk4",
"fodselsnummer": "29597490060"
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDE1NzQ",
"student": {
"personProfil": {
"id": "NzY6MTIzNCwxNTc0",
"fodselsnummer": "23598690006"
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMjEsMSxIw5hTVCwyMDA3LDE0OTg",
"student": {
"personProfil": {
"id": "NzY6MTIzNCwxNDk4",
"fodselsnummer": "29597490060"
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwx",
"kode": "1BA-121",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNyxIw5hTVA",
"arstall": 2007,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMjEsMSxIw5hTVCwyMDA3LDUzOTU",
"student": {
"personProfil": {
"id": "NzY6MTIzNCw1Mzk1",
"fodselsnummer": "01510790142"
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwx",
"kode": "1BA-121",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNyxIw5hTVA",
"arstall": 2007,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMjEsMSxWw4VSLDIwMDcsOTM4",
"student": {
"personProfil": {
"id": "NzY6MTIzNCw5Mzg",
"fodselsnummer": "02537490368"
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwx",
"kode": "1BA-121",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNyxWw4VS",
"arstall": 2007,
"betegnelse": {
"kode": "VÅR",
"navnAlleSprak": {
"nb": "Vår",
"nn": "Vår",
"en": "Spring"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMjEsMSxWw4VSLDIwMDcsOTQ5",
"student": {
"personProfil": {
"id": "NzY6MTIzNCw5NDk",
"fodselsnummer": "31587290521"
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwx",
"kode": "1BA-121",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNyxWw4VS",
"arstall": 2007,
"betegnelse": {
"kode": "VÅR",
"navnAlleSprak": {
"nb": "Vår",
"nn": "Vår",
"en": "Spring"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
}
]
}
}
}

SELECTMANY Vurdkombmelding

Eksempel kommer

UPSERT

For å migrere fra UPSERT i FSWS-CRUD til FS GraphQL API, må du utforske APIet for å finne en passende mutasjon. Noen mutasjoner vil være ganske like UPSERT i FSWS-CRUD, mens andre vil være mer komplekse. FS GraphQL API har enkelte mutasjoner som bruker UPSERT-mønsteret, men i mange tilfeller skilles det på INSERT og UPDATE. Mange mutasjoner har også innebygde forretningsregler og gjør oppdateringer i flere tabeller samtidig. Ikke alle mutasjoner i FSWS-CRUD har en direkte motpart i FS GraphQL API. Kontakt fs-support@sikt.no hvis du ikke finner en mutasjon som passer ditt behov.

UPSERT Fagperson

Det finnes flere mutasjoner som kan brukes for å opprette eller oppdatere en fagperson i FS GraphQL API. For oversikt se Tilgangsstyring for studenter og ansatte i prosesskatalogen.

UPSERT Kullklassestudent

Eksempel kommer

UPSERT Person

UPSERT Person brukes i stor grad til å opprette studenter og fagpersoner. Se under UPSERT Fagperson og UPSERT Studieprogramstudent for mer informasjon. Vi har også en rekke mutasjoner for å oppdatere persondata. Her er noen eksempler:

  • Mutation.angiBankkontonummerForPersonProfil
  • Mutation.angiFeideBrukereForPersonProfiler
  • Mutation.angiMaalformForPersonProfiler
  • Mutation.angiStatsborgerskap
  • Mutation.endreFolkergistrerteAdresser
  • Mutation.endrePersonProfilNavn

UPSERT Personakseptanse

Eksempel kommer

UPSERT Persontelefon

Eksempel kommer

UPSERT Soknad

Foreløpig ikke støttet. Kontakt fs-support@sikt.no og beskriv behovet dersom du trenger å opprette eller oppdatere søknader i FS GraphQL API.

UPSERT Soknadsalternativ

Foreløpig ikke støttet. Kontakt fs-suport@sikt.no og beskriv behovet dersom du trenger å opprette eller oppdatere søknadsalternativer i FS GraphQL API.

UPSERT Student

UPSERT Student brukes i stor grad til å opprette studenter som har fått opptak via et eksternt opptakssystem.

UPSERT Studieprogramstudent

UPSERT Studieprogramstudent brukes i stor grad til å opprette studenter som har fått opptak via et eksternt opptakssystem. I FSWS-CRUD må du først opprette en person med UPSERT Person, deretter en student via UPSERT Student, og til slutt tildele studieretten med UPSERT Studieprogramstudent. Deretter kan du bruke UPSERT Kullklassestudent for å fordele studenter i klasser og UPSERT Persontelefon for å registrere telefonnumre. I FS GraphQL API har vi samlet alle disse operasjonene i én mutasjon Mutation.opprettStudenter. Vi har også en mutasjon som kan brukes for å opprette studieretter for studenter som allerede finnes i FS: Mutation.taOppStudenterTilStudieprogrammer For oversikt se Tildele Studierett i prosesskatalogen.

UPSERT Undervisningsmelding

Eksempel kommer

UPSERT Vurdkombmelding

Eksempel kommer