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
feideBrukeri stedet forbrukernavn - Du kan også oppdatere
institusjonsEposti 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.personProfilhendelserogQuery.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.