Teknisk oppgradering av FINT API

FINT-prosjektet har gjennomført en teknisk oppgradering av FINTs API. Oppgraderingen er først og fremst intern, men påvirker enkelte typer av informasjonselementer også.

FINT bruker HATEOAS som metode for å representere ressurser og relasjoner. Vi genererer også modellklasser i Java og C# for å representere informasjonen. Disse klassene har kun inneholdt informasjon om felter fra modellen, og ikke relasjoner. For relasjoner har vi brukt støtteklasser som FintResource for å kunne knytte objekter mellom hverandre.

Ulempen med denne modellen er at relasjoner kun kan knyttes til klasser på ytterste nivå. I informasjonsmodellen har vi eksempler på komplekse datatyper som har relasjoner, som eksempelvis Adresse. Disse relasjonene var det ikke mulig å representere med den koden vi hadde.

Derfor har vi begynt å tilby modellklasser i Java og C# som også støtter relasjoner direkte, uten bruk av støtteklasser.

Vi ønsker å holde informasjonsmodellene og klassene så bakoverkompatible som mulig, og også etter denne oppgraderingen kan eksisterende modellkode benyttes til å utveksle informasjon.

De nye klassene følger samme navnekonvensjon som tidligere klasser, men vi legger Resource til navnet, og organiserer disse i egne pakker / namespaces.

I tillegg pakkes de som separate jar og nupkg i Bintray.

Relasjoner representeres med klassen Link, og denne har factory-metoder som erstatter Resource.Builder som brukes for FintResource.

For de nye klassene finner du en PersonResource for å representere personer, og denne klassen bruker AdresseResource for å representere bostedsadresse og postadresse. For alle disse Resource-klassene finnes det metoder for å legge til og hente ut relasjoner i tillegg til felter. For å legge til og hente ut Kjønn på en Person benyttes metodene addKjonn og getKjonn.

For mer informasjon og lenker til kode, ta en titt på dette dokumentet: (Engelsk)

2nd Generation FINT APIs