Gå til hovedinnhold

Fra FSWS-BAS til FS GraphQL API

FSWS-BAS er under utfasing, og deler av tjenesten er nå erstattet av FS GraphQL API. BAS-tjenesten består av endepunkter som er laget til litt forskjellige formål:

  • Oppdatering av brukernavn og studentbilder
  • Full- og inkrementell eksport av brukerdata (basData og basExport)

Under gir vi eksempler for hvert enkelt endepunkt. GraphQL gir imidlertid stor fleksibilitet når det gjelder hvordan du henter og oppdaterer dataene. Vi anbefaler at du bruker tid på å sette sammen spørringer og mutasjoner som passer ditt behov.

Merk: FS GraphQL API bruker base64-enkodede sammensatte nøkler som IDer. Hvis du trenger å finne PersonProfil-ID fra et fødselsnummer, se eksempelet under Klienten må bruke FS GraphQL APIs ID for objektet.

POST /bas/oppdater/brukernavn - Oppdater brukernavn

FSWS-BAS tillot oppdatering av en persons brukernavn ved å oppgi fødselsnummer. I FS GraphQL API erstattes dette av mutasjonen angiBrukerinformasjonForPersonProfiler.

Viktige forskjeller:

  • FS GraphQL API bruker PersonProfil-ID i stedet for fødselsnummer
  • Feltet heter feideBruker i stedet for brukernavn
  • Du kan også oppdatere institusjonsEpost i samme mutasjon

Eksempel på mutasjon:

mutation {
angiBrukerinformasjonForPersonProfiler(
input: {
id: "NzY6MTIzNCw4ODE"
feideBruker: "test"
institusjonsEpost: "bruker@institusjon.no"
}
) {
personProfiler {
id
feideBruker
institusjonsEpost
}
}
}

Eksempel på svar:

{
"data": {
"angiBrukerinformasjonForPersonProfiler": {
"personProfiler": [
{
"id": "NzY6MTIzNCw4ODE",
"feideBruker": "test@spusers.feide.no",
"institusjonsEpost": "bruker@institusjon.no"
}
]
}
}
}

Her bruker vi mutasjon for å slette eller blanke ut disse feltene: NB! Det er også mulig å bruke en tom streng "" i stedet for null

mutation MyMutation {
angiBrukerinformasjonForPersonProfiler(
input: {
id: "NzY6MTIzNCw4ODE"
feideBruker: null
institusjonsEpost: null
}
) {
personProfiler {
id
feideBruker
institusjonsEpost
}
}
}

Eksempel på svar:

{
"data": {
"angiBrukerinformasjonForPersonProfiler": {
"personProfiler": [
{
"id": "NzY6MTIzNCw4ODE",
"feideBruker": null,
"institusjonsEpost": null
}
]
}
}
}

POST /bas/oppdater/bilde - Last opp/oppdater bilde

FSWS-BAS tillot opplasting av bilder for personer. I FS GraphQL API kan du opprette og oppdatere studentbilder med mutasjonen angiStudentbilder.

Viktige forskjeller:

  • Krever StudentVedLarested-ID i stedet for fødselsnummer
  • Bildet må være Base64-kodet
  • Krever eksplisitt spesifikasjon av filtype

Eksempel på mutasjon:

mutation {
angiStudentbilder(
input: {
studentVedLarestedId: "OTk6MTIzNCwxNDQw"
bilde: "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="
filtype: JPG
}
) {
studentbilder {
id
bilde
filtype
}
errors {
... on Error {
path
message
__typename
}
}
}
}

GET /bas/hent/baseksport - Inkrementell dataeksport

I FS GraphQL API kan du abonnere på endringer gjennom hendelses-systemet:

  • Abonner på relevante person-, student- og ansatthendelser via Query.personProfilhendelser og Query.studenthendelser
  • Bygg din egen synkronisering basert på hendelsesstrømmer
  • Les mer om hendelser her: FS GraphQL API: Hendelser

GET /bas/hent/basdata - Full dataeksport

For å hente samme type data som du er vant til fra basData, kan du bruke GraphQL til å konstruere spørringer som henter nøyaktig de dataene du trenger. Her er to enkle eksempler:

Eksport av studenter med tilknytninger:

query {
studenterGittFodselsnumre(
eierOrganisasjonskode: "1234"
fodselsnumre: ["01825996687"]
) {
id
personProfil {
fodselsnummer
feideBruker
institusjonsEpost
navn {
fornavn
etternavn
}
}
lanetakerId
studentkort {
gyldighetsperiode {
fraDato
tilDato
}
}
vurderingsmeldinger {
id
vurderingsenhet {
emne {
kode
navnAlleSprak {
nb
}
}
}
}
semesterregistreringer {
nodes {
termin {
arstall
betegnelse {
kode
}
}
harBetaltSemesteravgiftV2
}
}
}
}

Eksport av fagpersoner med roller:

query {
fagpersonerGittFodselsnumre(
eierOrganisasjonskode: "1234"
fodselsnumre: ["25555190045"]
) {
personProfil {
navn {
fornavn
etternavn
}
}
studieprogramroller {
gyldighetsperiode {
fraDato
tilDato
}
}
bilde {
bilde
filtype
}
}
}

Disse spørringene kan tilpasses videre for å hente akkurat de feltene du trenger. Ta kontakt med kontakt@sikt.no for å få hjelp til å sette opp en spørring som passer ditt spesifikke behov.

Kontakt oss for hjelp ved behov

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