Fra FSWS-Alumni til FS GraphQL API
FSWS-Alumni er under utfasing og erstattes av FS GraphQL API. Alumni-tjenesten brukes til å hente data om innloggede brukere (autentisert via Feide/Dataporten):
- Persondata (navn, epost, telefon, adresse)
- Aktive studier med studieprograminformasjon
- Oppnådde kvalifikasjoner (grader)
Under gir vi eksempler på hvordan du kan migrere fra FSWS-Alumni til FS GraphQL API. GraphQL gir imidlertid stor fleksibilitet når det gjelder hvordan du henter dataene. Vi anbefaler at du bruker tid på å sette sammen spørringer som passer ditt behov.
GET /alumni/data - Hent alumni-data
FSWS-Alumni returnerte et AlumniPerson-objekt med persondata, aktive studier og kvalifikasjoner for den innloggede brukeren.
I FS GraphQL API erstattes dette av spørringen studenterGittFeideBrukere.
Viktige forskjeller:
- FS GraphQL API krever
eierOrganisasjonskodesom parameter (tilsvarer institusjonsnummeret) - Autentisering skjer via standard OAuth2/OIDC-flyt med access token
- FS GraphQL API bruker Relay-style connections med
edgesognodesfor lister
Eksempel på GraphQL-spørring
query HentAlumniData($eierOrganisasjonskode: String!, $feideBrukere: [String!]!) {
studenterGittFeideBrukere(
eierOrganisasjonskode: $eierOrganisasjonskode
feideBrukere: $feideBrukere
) {
id
studentnummer
personProfil {
id
personlopenummer
fodselsdato
navn {
fornavn
etternavn
}
privatEpost
institusjonsEpost
mobilTelefon {
landnummer
nummer
}
postadresse {
co
gate
postnummerOgSted
land
}
folkeregistrertAdresse {
co
gate
postnummerOgSted
land
}
}
programStudieretter(filter: { aktivStatus: [AKTIV] }) {
edges {
node {
id
studierettperiode {
fraDato
tilDato
}
studieprogram {
kode
navnAlleSprak {
nb
nn
en
}
studienivaintervallkode
studieansvarligOrganisasjonsenhet {
id
forkortelse
}
forerTilKvalifikasjon {
id
navnAlleSprak {
nb
nn
en
}
}
}
kull {
id
navnAlleSprak {
no
en
}
terminV2 {
arstall
}
}
}
}
}
oppnaddKvalifikasjon {
id
datoOppnadd
erKunngjort
kvalifikasjon {
id
navnAlleSprak {
nb
nn
en
}
}
studieprogram {
kode
navnAlleSprak {
nb
nn
en
}
studienivaintervallkode
}
}
}
}
Variabler:
{
"eierOrganisasjonskode": "1234",
"feideBrukere": ["brukernavn@feide.no"]
}
Eksempel på svar
{
"data": {
"studenterGittFeideBrukere": [
{
"id": "OTk6MTIzNCw5Mzg",
"studentnummer": "123456",
"personProfil": {
"id": "NzY6MTIzNCw5Mzg",
"personlopenummer": "938",
"fodselsdato": "1990-01-15",
"navn": {
"fornavn": "Ola",
"etternavn": "Nordmann"
},
"privatEpost": "ola.nordmann@example.com",
"institusjonsEpost": "ola.nordmann@student.uio.no",
"mobilTelefon": {
"landnummer": "47",
"nummer": "12345678"
},
"postadresse": {
"co": null,
"gate": "Storgata 1",
"postnummerOgSted": "0123 Oslo",
"land": "Norge"
},
"folkeregistrertAdresse": null
},
"programStudieretter": {
"edges": [
{
"node": {
"id": "MTIzOjEyMzQsOTM4LFBST0ctMTIz",
"studierettperiode": {
"fraDato": "2020-08-01",
"tilDato": null
},
"studieprogram": {
"kode": "PROG-123",
"navnAlleSprak": {
"nb": "Bachelorprogram i informatikk",
"nn": null,
"en": "Bachelor's Programme in Informatics"
},
"studienivaintervallkode": "BACHELOR",
"studieansvarligOrganisasjonsenhet": {
"id": "T1I6MTIzNCwxMDAsMTAwLDEwMA",
"forkortelse": "IFI"
},
"forerTilKvalifikasjon": {
"id": "R1I6MTIzNCxCQUM",
"navnAlleSprak": {
"nb": "Bachelor",
"nn": "Bachelor",
"en": "Bachelor"
}
}
},
"kull": {
"id": "S1U6MTIzNCxQUk9HLTEyMywyMDIwLEjDmFNU",
"navnAlleSprak": {
"no": "Kull 2020",
"en": "Cohort 2020"
},
"terminV2": {
"arstall": 2020
}
}
}
}
]
},
"oppnaddKvalifikasjon": []
}
]
}
}
Feltmapping
Tabellene under viser hvordan feltene i FSWS-Alumni mapper til FS GraphQL API.
AlumniPerson (persondata)
| FSWS-Alumni felt | FS GraphQL API felt |
|---|---|
id | personProfil.personlopenummer |
firstName | personProfil.navn.fornavn |
lastName | personProfil.navn.etternavn |
email | personProfil.privatEpost eller personProfil.institusjonsEpost |
phoneNumber | personProfil.mobilTelefon.landnummer + personProfil.mobilTelefon.nummer |
dob | personProfil.fodselsdato |
startOfStudy | Tidligste programStudieretter.edges[].node.studierettperiode.fraDato |
AlumniAddress (adresse)
| FSWS-Alumni felt | FS GraphQL API felt |
|---|---|
street | personProfil.postadresse.gate |
city | personProfil.postadresse.postnummerOgSted |
postCode | (inkludert i postnummerOgSted) |
country | personProfil.postadresse.land |
countryNameNor, countryNameEn | Må hentes separat via land-oppslag |
AlumniActiveStudy (aktive studier)
| FSWS-Alumni felt | FS GraphQL API felt |
|---|---|
place | programStudieretter.edges[].node.studieprogram.studieansvarligOrganisasjonsenhet |
program.code | programStudieretter.edges[].node.studieprogram.kode |
program.nameNorwegian | programStudieretter.edges[].node.studieprogram.navnAlleSprak.nb |
program.nameEnglish | programStudieretter.edges[].node.studieprogram.navnAlleSprak.en |
studyClass.year | programStudieretter.edges[].node.kull.terminV2.arstall |
studyClass.nameNorwegian | programStudieretter.edges[].node.kull.navnAlleSprak.no |
studyClass.nameEnglish | programStudieretter.edges[].node.kull.navnAlleSprak.en |
qualification.level | programStudieretter.edges[].node.studieprogram.studienivaintervallkode |
qualification.nameNorwegian | programStudieretter.edges[].node.studieprogram.forerTilKvalifikasjon.navnAlleSprak.nb |
qualification.nameEnglish | programStudieretter.edges[].node.studieprogram.forerTilKvalifikasjon.navnAlleSprak.en |
AlumniQualification (oppnådde kvalifikasjoner)
| FSWS-Alumni felt | FS GraphQL API felt |
|---|---|
level | oppnaddKvalifikasjon.studieprogram.studienivaintervallkode |
code | oppnaddKvalifikasjon.kvalifikasjon.id |
nameNorwegian | oppnaddKvalifikasjon.kvalifikasjon.navnAlleSprak.nb |
nameEnglish | oppnaddKvalifikasjon.kvalifikasjon.navnAlleSprak.en |
date | oppnaddKvalifikasjon.datoOppnadd |
areaOfStudy.code | oppnaddKvalifikasjon.studieprogram.kode |
areaOfStudy.nameNorwegian | oppnaddKvalifikasjon.studieprogram.navnAlleSprak.nb |
areaOfStudy.nameEnglish | oppnaddKvalifikasjon.studieprogram.navnAlleSprak.en |
Kontakt oss for hjelp ved behov
Kontakt kontakt@sikt.no dersom du trenger hjelp til å komme i gang, eller underveis i migreringen.