Hvordan håndtere referanser i API-et

Petter Reinholdtsen pere at hungry.com
Thu Feb 20 10:46:36 CET 2020


En ting vi ikke har implementert så langt i Nikita, er
referanse*-feltene i spesifikasjonen.  I utgangspunktet er det beskrevet
som felt som inneholder en systemid, som henviser til en annen instans.
I fjor sommer ble beskrivelsen av kryssreferanse endret til å bruke en
annen tilnærming med bruk av $ref?$id=<self-url>, og tanken var å endre
hele grensesnittet til denne tilnærmingen.

De siste dagene har jeg sett på hvordan referanser bør håndteres i
Nikita.  Startet først på kryssreferanse, som ennå ikke er
implementert.  Fant ut at det var greiere å starte med en litt enklere
oppgave, og tok derfor tak i referansene i arkivdel, til forrige og
neste arkivdel i en serie.

Et utkast til løsning er tilgjengelig som endringsforslag #323,
<URL: https://gitlab.com/OsloMet-ABI/nikita-noark5-core/-/merge_requests/323 >.

Min opprinnelig ide var at alle referanser egentlig er pekere til andre
instanser i databasen, og derfor burde være _links-oppføringer i stedet
for attributter med systemid.  Mens jeg hold på med implementasjonen slo
det meg at det også må være mulig å henvise til arkivdeler som ikke er i
databasen, f.eks. ved import av gammelt uttrekk eller ved oppretting.
Det utelukker en ren _links-tilnærming.  I tillegg vil det være
nødvendig at henvisninger til tidligere arkivdeler overleverer sletting
av avsluttede og avleverte arkivdeler som er fjernet fra databasen.

Det jeg konkluderer med er at referanser må håndteres litt som
metadata-verdier, der en tar vare på verdien som ble satt, i tillegg til
å kunne henvise til metadatakatalogen ved behov.  Dermed må alle
referanser ha to verdier i modellene, en UUID for verdien i
atributtfeltet, og en valgfri relasjon til annen modell hvis UUID-en
eksisterer i aktuell modell.

Det er denne tilnærmingen jeg har implementert i #323.  Jeg tror
API-spesifikasjonen bør endres til å forklare dette nærmere, slik at de
som skal implementere og bruke referanser får en enklere jobb enn meg.

-- 
Vennlig hilsen
Petter Reinholdtsen


More information about the nikita-noark mailing list