Beskrivelse
Der etableres en ny webservicemetode på AbonnementService (EksternKommunikation.AbonnementService (Version 1, 2023-4) ) ved navn
Metoden formål er at kalderen skal eje kendskabet til hvilke abonnementer et givent system skal have. Dermed har STAR ikke ansvar for oprettelsen og nedlæggelsen af abonnementer. STARs serviceaftagere varetager selv hvilken abonnementer og timing for hvornår disse skal træde i kraft.
Regler
Alt eller intet
Ovenstående eksempel viser at de abonnementer som requestet indeholde bliver resultatet efter metodern har returneret. Overflødige abonnementer slettes. Nye abonnementer oprettes.
Denne operation kan kaldes flere gange med samme resultat (Idempotent)
For alle nedenstående regler gælder at hele kaldet udføres som en transaktion. Dvs. at enten bliver alle abonnementer opsat - eller ingen. Dermed kan kalderen ikke stå i en situation hvor kaldet delvist er succesfuldt.
Datavalidering
Der kan kun oprettes abonnementer som er gyldige i forhold til de af STAR kontrollerede regler (såsom tilladte abonnementer)
Sikkerhed
Der kan kun oprettes abonnementer til de systemer som det kaldende systemcertifikat har adgang til
Fejlhåndtering
Ved fejl på kalderens side returneres en fejlstruktur som beskrevet herunder i “output”. Fejlstrukturen returnerer en komplet liste over de fundne fejl.
Auditlog
Alle kald og de efterfølgende abonnementrettelser bliver logget af hensyn til revision.
LSS
STAR udvikler ikke LSS/selvbetjenings UI til dene funktionalitet.
Håndtering af ikke-modtagede beskeder (50x eller 40x)
Hvis kalderen ønsker at slette et abonnement hvorpå der identificeres ikke-modtagerede beskeder på køen, vil disse beskeder blive slettet uden yderligere forsøg på gensendelse.
Input (request)
JSON payload eksempel
{ "systemIdentifier": "550e8400-e29b-41d4-a716-446655440000", "abonnementer": [ { "orgType": 1, "orgCode": 101, "entityType": 202, "webhookUrl": "/webhook", "startDato": "2023-01-01T00:00:00", "slutDato": "2023-12-31T23:59:59" }, { "orgType": 2, "orgCode": 102, "entityType": 203, "webhookUrl": "/webhook", "startDato": "2023-01-01T00:00:00", "slutDato": "2023-12-31T23:59:59" } ] }
Output (Response)
200: Hvis alle abonnementer er oprettet korrekt returneres OK.
500: Hvis der sker en intern fejl på STARs side returneres HTTP STATUS CODE 500 med den sædvanlige fejlstruktur. Der bliver ikke foretaget nogen ændringer i abonnement opsætningen.
400: Hvis der sker fejl som skyldes et problem i requestet returneres følgende struktur. Der bliver ikke foretaget nogen ændringer i abonnement opsætningen. Alle værdier er i eksemplet tilfældige.
{ "errors": [ { "orgtype": 123, "orgcode": 456, "entitytype": 789, "errorCode": 1001, "message": "Slutdato er før startdato" }, { "orgtype": 321, "orgcode": 654, "entitytype": 987, "errorCode": 1002, "message": "Denne orgtype har ikke adgang til at abonnere på entity type 987. Tjek webservice metoder xyz for at se hvilke entiteter du må abonnere på" } ] }