Sv: N5TG flytting, tre tilnærminger

Thomas Sødring tsodring at oslomet.no
Sat Oct 7 13:13:51 CEST 2023


Hei,

Faktisk så synes jeg at nikita sin tilnærming er best 🙂. Den er basert på  RFC6902
https://www.rfc-editor.org/rfc/rfc6902#section-4.4 og åpner for flere operasjoner enn move. Den inkluderer også copy. Men det er kun et forsøk på dette i test.

Jeg husker ikke hvorfor det ble sånn, men jeg mistenker  at vi var på jakt etter en løsning på dette. Husker så vidt en diskusjon om at vi ønsket oss vekk fra $ref da noen rammeverk liker ikke ekstra URLer som en del av en http forespørsel og spring har en innebygd brannmur som forkaster en http forespørsel som inneholder en URL.

Poenget her er vel at  nikita må støtte begge dersom det skal kunne anses som en referanseimplementasjon.

Selv synes jeg implementasjonen av det som er i nikita nå har en god semantisk forståelse når du ser på nyttelasten og hva du ønsker å oppnå.

Thomas
________________________________
Fra: nikita-noark <nikita-noark-bounces at nuug.no> på vegne av Petter Reinholdtsen <pere at hungry.com>
Sendt: fredag 6. oktober 2023 23:50
Til: nikita-noark at nuug.no <nikita-noark at nuug.no>
Emne: N5TG flytting, tre tilnærminger


Det ser ut til å være tre tilnærminger så langt til flytting av
instanser for Noark 5 Tjenestegrensesnitt.  To av dem er beskrevet i
kapittel 6, den siste ser ut til å være implementert i Nikita.
Kapittel 6 er tilgjengelig via
<URL: https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Farkivverket%2Fnoark5-tjenestegrensesnitt-standard%2Fblob%2Fmaster%2Fkapitler%2F06-konsepter_og_prinsipper.rst&data=05%7C01%7Ctsodring%40oslomet.no%7C39677a9dc3f941b5448108dbc6b650dc%7Cfec81f12628645508911f446fcdafa1f%7C0%7C0%7C638322258581753545%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=5Fx2pKcKNc6v%2FVz1Mw%2FT62N2LNNuVqxhRDGeC0QtzPI%3D&reserved=0<https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/blob/master/kapitler/06-konsepter_og_prinsipper.rst> >,
søk etter 'flytt'.

Den første i kapittel 6 er for å flytte en dokumentbeskrivelse fra en
registrering til en annen:

  PATCH https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fn5.example.com%2Fapi%2Farkivstruktur%2FDokumentbeskrivelse%2F1fa94a89-3550-470b-a220-92dd4d709044&data=05%7C01%7Ctsodring%40oslomet.no%7C39677a9dc3f941b5448108dbc6b650dc%7Cfec81f12628645508911f446fcdafa1f%7C0%7C0%7C638322258581753545%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=ZqV4vFyadqV1mtrt05BLfpsXI3%2BmeJlx7cY0KGgvJ88%3D&reserved=0<https://n5.example.com/api/arkivstruktur/Dokumentbeskrivelse/1fa94a89-3550-470b-a220-92dd4d709044>

  Innholdet skal ha følgende form:

    {
      "_links": {
        "https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Frel.arkivverket.no%2Fnoark5%2Fv5%2Fapi%2Farkivstruktur%2Fregistrering%2F&data=05%7C01%7Ctsodring%40oslomet.no%7C39677a9dc3f941b5448108dbc6b650dc%7Cfec81f12628645508911f446fcdafa1f%7C0%7C0%7C638322258581753545%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=bmxQ83RJgymJ9oLJzBpCgjKhOdnz2Y4XWwGg%2BMb4QP4%3D&reserved=0<https://rel.arkivverket.no/noark5/v5/api/arkivstruktur/registrering/>": {
          "href": "https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fn5.example.com%2Fapi%2Farkivstruktur%2Fregistrering%2Fcf8e1d0d-e94d-4d07-b5ed-46ba2df0465e%2Fdokumentbeskrivelse%2F&data=05%7C01%7Ctsodring%40oslomet.no%7C39677a9dc3f941b5448108dbc6b650dc%7Cfec81f12628645508911f446fcdafa1f%7C0%7C0%7C638322258581909706%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=AbHx%2FgSQGrtQbLZ9FqkcEIiSMm2gjXdgYuGOj50WGjw%3D&reserved=0<https://n5.example.com/api/arkivstruktur/registrering/cf8e1d0d-e94d-4d07-b5ed-46ba2df0465e/dokumentbeskrivelse/>"
        }
      }
    }

Denne ser ut til å være inspiert av IETF RFC 7396, der en oppgir
kun JSON-feltet som skal erstattes.

Den andre i kapittel 6, litt lenger ned i teksten, beskriver flytting av
mappe fra en arkivdel til en annen:

  PUT https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fn5.example.com%2Fapi%2Farkivstruktur%2Fmappe%2Fcf8e1d0d-e94d-4d07-b5ed-46ba2df0465e%2Farkivdel%2F%24ref&data=05%7C01%7Ctsodring%40oslomet.no%7C39677a9dc3f941b5448108dbc6b650dc%7Cfec81f12628645508911f446fcdafa1f%7C0%7C0%7C638322258581909706%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=RY3IaW7WRamkxTJaJ9dRIxEyIS8Zuuw%2BZbXVN0ZG%2Bwo%3D&reserved=0<https://n5.example.com/api/arkivstruktur/mappe/cf8e1d0d-e94d-4d07-b5ed-46ba2df0465e/arkivdel/$ref>

  Innholdet skal ha følgende form:

    https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fn5.example.com%2Fapi%2Farkivstruktur%2Farkivdel%2F092e497a-a528-4121-8f22-fbc78fa6c930&data=05%7C01%7Ctsodring%40oslomet.no%7C39677a9dc3f941b5448108dbc6b650dc%7Cfec81f12628645508911f446fcdafa1f%7C0%7C0%7C638322258581909706%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Ri2GSZyV%2BYBBllKlleYcA9XA6cjuX6CYJZjAMGFt5hQ%3D&reserved=0<https://n5.example.com/api/arkivstruktur/arkivdel/092e497a-a528-4121-8f22-fbc78fa6c930>

Den siste er beskrevet i en test i Nikita for å flytte en mappe fra en
arkivdel til en annen,
<URL: https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.com%2FOsloMet-ABI%2Fnikita-noark5-core%2F-%2Fblob%2Fmaster%2Fsrc%2Ftest%2Fjava%2Fapp%2Fwebapp%2Fgeneral%2FGeneralTest.java%3Fref_type%3Dheads%23L595&data=05%7C01%7Ctsodring%40oslomet.no%7C39677a9dc3f941b5448108dbc6b650dc%7Cfec81f12628645508911f446fcdafa1f%7C0%7C0%7C638322258581909706%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=RJ%2BgVrr7Hyi6n%2B9mPlIF3bONXMDSWI2PTRl4I6YCfTo%3D&reserved=0<https://gitlab.com/OsloMet-ABI/nikita-noark5-core/-/blob/master/src/test/java/app/webapp/general/GeneralTest.java?ref_type=heads#L595> >:

  PATCH https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fn5.example.com%2Fapi%2Farkivstruktur%2Fmappe%2Fcf8e1d0d-e94d-4d07-b5ed-46ba2df0465e&data=05%7C01%7Ctsodring%40oslomet.no%7C39677a9dc3f941b5448108dbc6b650dc%7Cfec81f12628645508911f446fcdafa1f%7C0%7C0%7C638322258581909706%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=tSAlFAknu45yqCjLIBDaxQpsjeW1pamPK9k8cummREA%3D&reserved=0":<https://n5.example.com/api/arkivstruktur/mappe/cf8e1d0d-e94d-4d07-b5ed-46ba2df0465e> "move",
  "from": "0a3348d9-a950-45e7-8835-302fda9925af",
  "path": "092e497a-a528-4121-8f22-fbc78fa6c930"
  }

Denne siste tilnærmingen ser ut til å være inspiert av IETF RFC 6902,
JavaScript Object Notation (JSON) Patch.

Det er kanskje på tide å gjøre spesifikasjonen mer konsistent med seg
selv, og i samme slengen kan vi jo vurdere om det er lurt å basere seg
på en av RFC-standardene for endring av JSON-objekter.

Hva tenker dere andre om mekanisme for flytting av instanser i arkivet?

--
Vennlig hilsen
Petter Reinholdtsen
_______________________________________________
nikita-noark mailing list
nikita-noark at nuug.no
https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.nuug.no%2Fmailman%2Flistinfo%2Fnikita-noark&data=05%7C01%7Ctsodring%40oslomet.no%7C39677a9dc3f941b5448108dbc6b650dc%7Cfec81f12628645508911f446fcdafa1f%7C0%7C0%7C638322258581909706%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Eex8JU51AzUAXF6jgDkoCPaZjirFKYY5zR9ucyTirSk%3D&reserved=0<https://lists.nuug.no/mailman/listinfo/nikita-noark>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.nuug.no/pipermail/nikita-noark/attachments/20231007/4723e60a/attachment-0001.htm>


More information about the nikita-noark mailing list