2.1 FS-API

Unit leverte høsten 2018 et nytt FS-API. Nye tjenester, samt nyskriving av eksisterende, vil i størst mulig grad gjøres i dette API'et.

Oppdeling

Detaljene i API'et er dokumentert i Swagger
Prod:            https://api.fellesstudentsystem.no/swagger.html
Test/Demo:  https://fsapi-test.uio.no/swagger.html
Utvikling:      https://fsapi-utv.uio.no/swagger.html

API'et er delt opp i følgende hoveddeler, som igjen består av ressurser (viser eksempler):

Tverrgående

  • Felles (kodeverk)
    • Semester
    • Land
    • Campus
    • ...
  • Person
    • Student
      • Semesterregistrering
      • ...
    • Fagperson
      • Personroller
      • ...
    • Deltaker

Modul-/områdespesifikk

  • Studieprogram
    • Kull
    • Klasse
    • Studierett
  • Undervisning
    • Undervisning(senhet)
    • Undervisningsaktivitet
    • Studentundervisning
    • Studentundervisningsaktivitet
  • EVU
    • Kurs
    • Aktivitet
    • Kursdeltakelse
  • Vurdering
    • Vurderingsordning
    • Vurderingstid
    • Vurderingskombinasjon
    • Vurderingsenhet
    • Studentvurdering

Abstraksjon og ressursvarianter

Ressursene er ikke en 1:1-avbildning mot FS-tabeller, men et abstraksjonslag som skjuler teknisk kompleksitet. F.eks:

  • "Person" er et begrep som inneholder student og/eller fagperson-informasjon
  • Tekniske forskjeller som at forskjellige typer telefonnumre er skilt ut i en egen tabell (PersonTelefon), mens forskjellige typer adresser ligger "flatt", er standardisert slik at alt presenteres på samme form (lister av kontaktinformasjon av forskjellige typer)
  • Kodeverk med mye informasjon  som refereres mange steder tilgjengeliggjøres som egne ressurser, mens andre koder presenteres inline der de refereres

Hver ressurs forekommer i en collection-variant og en individvariant (alt etter om ID er angitt) samt et potensielt sett underressurser (sistnevnte er foreløpig ikke implementert).

Operasjoner

Hver ressurs har en URL, og kalles med en operasjon (HTTP-verb):

  • GET: Henter informasjon
  • POST: Lagrer informasjon
  • PATCH: Lagrer informasjon med mulighet for blanking
  • DELETE: Sletter informasjon
Operasjon Collection Individ Underressurs
GET Henter liste av individer med evt. filter/sortering/paginering (default kun ID) Henter et individ (default all informasjon) Henter informasjon om et individ
POST Oppretter et individ (ID er ikke kjent) Endrer et individ (ID er kjent) Lagrer informasjon om et individ
PATCH N/A Endrer et individ (ID er kjent) - Eksplisitt blanke felt gir blanking i basen (gjelder kun et utvalg felt) Sletter (blanker) informasjon om et individ
DELETE N/A Sletter (ev. deaktiverer) et individ Sletter (blanker) informasjon om et individ

Dataformat

Data leveres på JSON- eller XML-format. Du kan velge mellom JSON og XML via Content-Type.

Emneord: webservice, api, rest
Publisert 19. okt. 2017 14:56 - Sist endret 8. aug. 2025 13:02