2.1 FS-API

CERES leverer i 2018 et nytt FS-API. Første leveranse inneholder tjenester for BAS og Canvas.

API'et er i utgangspunktet tenkt å dekke alle eksisterende generelle FSWS-tjenester, men levering på eksternt definert standardformat er også en mulighet på sikt. Nye tjenester, samt nyskriving av eksisterende, er tenkt gjort i API'et i størst mulig grad.

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:

Tverrgående

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

Modul-/områdespesifikk

  • Studieprogram
    • Kull
    • Klasse
    • Studierett
    • ...
  • Undervisning
    • Undervisningsenhet
    • Undervisningsaktivitet
    • Undervisningsmelding
    • Partiplassering
    • ...
  • EVU
    • Kurs
    • Aktivitet
    • Kursdeltakelse
    • ...
  • ...

Abstraksjon og ressursvarianter

Ressursene er ikke en 1:1vavbildning 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
  • 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
DELETE N/A Sletter (ev. deaktiverer) et individ Sletter (blanker) informasjon om et individ

Dataformat

I utgangspunktet leveres et "kanonisk" format definert av CERES, men på sikt vil det kunne gis mulighet for å levere på eksternt definerte standardformat (f.eks IMS eller ELMO).

Det vil uavhengig av dette kunne velges mellom JSON og XML via Content-Type.

Erstatning av eksisterende tjenester

Tentativ roadmap:

  1. BAS + utvalgt LMS-info 
  2. BAS (resten)
  3. StudInfo2
  4. LMS (resten)
  5. CRUD
  6. CDM
  7. StudRapp
  8. FS-koder
  9. Bris

Historikk

Bakgrunn for utvikling av den nye tjenesten er CERES' vurdering at de gamle BAS-tjenestene er virksomhetskritiske, men beheftet med endel mangler og feil, og er for tunge å kjøre.

Det kommer også etter påtrykk fra institusjoner som trenger en mer moderne løsning med mindre (mikro)tjenester. UiO har utarbeidet spesifikasjon med ønsker til CERES. Denne ble diskutert i prosjektgruppen for nytt API, og tatt inn i prosjektet som basis for den første leveransen. Bestillingen er generalisert til å kunne dekke BAS-tjenester for alle institusjoner som ønsker å hente data på en smidigere måte. I tillegg dekker den nødvendige data til Canvas.

Emneord: webservice, api, rest
Publisert 19. okt. 2017 14:56 - Sist endret 20. sep. 2018 14:38