Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootSOR Opdater Service Platformsservices (NAP Platform) - Leverancebeskrivelse
includeroottrue

Indholdsfortegnelse

Table of Contents
outlinetrue
excludeIndholdsfortegnelse

Snitflader

Applikationen opstiller forskellige snitflader, som er beskrevet nedenfor.

DKS

Snitfladen for at udstille DKS konfigurationen kan findes under:

https://localhost/dks

DKS snitfladen har support for brugen af HTTP header If-Modified-Since.

Status

Applikationen udstiller to forskellige status output på samme snitflade; en human readable i XML format, og en simpel som kan bruges til hyppige check af applikationens health.

Snitfladen for hyppige health checks:

https://localhost/status

Denne snitflade er i stand til at håndtere, at blive kaldt ofte. Hvis applikationen tror at den er oppe, returnerer den blot HTTP kode 200. Hvis servicen er nede, prøver den at lave et kald til en lignende snitflade hos backend servicen, og afhængig af hvad den svarer, sker forskellige ting. Hvis backend servicen svarer tilbage med HTTP kode 200, bliver den interne score resat til 0, og kaldet til applikationen vil returnere HTTP kode 200 selv. Hvis backend servicen ikke svarer, eller svarer med HTTP kode 500, så vil kaldet til applikationen selv returnere HTTP kode 500. Ved HTTP kode 500 kan applikationen ikke betragtes som værende brugbar.

Snitfladen for at få XML output findes her:

https://localhost/status?verbose

Snitfladen returnerer et simpelt XML format, som indeholder følgende information:

...

For begge disse outputs, hvis et forceCheck URL parameter tilføjes, tvinges applikationen til at teste om backenden er tilgængelig.

Modus operandi

Applikationen prøver så vidt muligt altid at give et fornuftigt svar. Kun i de tilfælde, hvor at applikationen ikke kan skrive et pænt svar til klienten, vil den give op og bare kaste en exception. Ved et kald til en snitflade der ikke eksisterer, vil den svare med HTTP kode 404.

Applikationens hovedfunktionalitet ligger under følgende HTTP POST på adresser:

http://localhost/v3/SOROpdateringService

Denne er en SOAP snitflad, og kan håndtere en af følgende SOAP operationer:

  • For http://localhost/v3/SOROpdateringService:
    • http://sundhedsdatastyrelsen.dk/SOROpdateringServiceV3#CreateSorEntity
    • http://sundhedsdatastyrelsen.dk/SOROpdateringServiceV3#EditSorEntity
    • http://sundhedsdatastyrelsen.dk/SOROpdateringServiceV3#MoveSorEntity
    • http://sundhedsdatastyrelsen.dk/SOROpdateringServiceV3#ReplaceSorEntities
    • http://sundhedsdatastyrelsen.dk/SOROpdateringServiceV3#CloseSorEntity
    • http://sundhedsdatastyrelsen.dk/SOROpdateringServiceV3#EditEanLocationCodeSystemType
    • http://sundhedsdatastyrelsen.dk/SOROpdateringServiceV3#EditEanLocationCodeCommunicationSupplier
    • http://sundhedsdatastyrelsen.dk/SOROpdateringServiceV3#EditEanLocationCodeEdiAdministrator
    • http://sundhedsdatastyrelsen.dk/SOROpdateringServiceV3#EditEanLocationCodeRegion
    • http://sundhedsdatastyrelsen.dk/SOROpdateringServiceV3#EditEanLocationCodeSystemSupplier
    • http://sundhedsdatastyrelsen.dk/SOROpdateringServiceV3#MoveEanLocationCode
    • http://sundhedsdatastyrelsen.dk/SOROpdateringServiceV3#UpdateEdiTypes

Operationen bliver valgt med HTTP header SOAPAction. Hvis en anden operation end de listede er valgt, vil servicen returnere HTTP kode 405.

Alle operationer vil returnere et Status objekt som en del af svaret. Dette object indeholder altid to felter, ErrorCode og Message. Hvis ErrorCode er 0, så var kaldet en succes, ellers skete der en fejl i løbet af kaldet. Positive værdier er validerings fejl fra SOR's interne systemer, hvoraf mere tekniske fejl vil blive lavet som en SOAP fault. De nedenstående er hvilke denne applikation definerer:

...

Andre fejlkoder kan forekomme, men disse kommer fra backenden, eller dens underliggende services.

Det skal pointeres, at MedCom's fault code kan findes under detail sektionen af den resulterende SOAP fault. Den påkrævede faultstring vil altid være "Server".

Logning

Applikationen bruger tre forskellige logs.

Audit log

Audit logning benytter audit API biblioteket, og skriver til audit.log i logs/ mappen. Følgende oplysninger bliver trukket ud af forespørgelsen og skrevet i audit loggen:

  • Message ID
  • SOAP operation
  • Klient certifikatets common name
  • Klient certifikatets organization
  • Klient certifikatets CVR
  • Klient certifikatets ID
  • Klient certifikatets type
  • Listen af roller listet i forespørgelsens User objekt
  • Listen af entities listet i forespørgelsens User objekt

SLA log

SLA logning benytter nsp-util biblioteket, og skriver til nsputil-sla.log i logs/ mappen. Der bliver startet et nyt SLA log objekt på to forskellige tidspunkter; når en forespørgelse kommer ind til applikationen, og når applikationen skal lave en forespørgelse mod backend.

Ved forespørgelser til applikationen er der følgende ID'er:

...

Ved forespørge til backenden er der følgende ID'er:

...

Ved forespørge til whitelist databasen er der følgende ID'er:

...

Applikation log

Applikation loggen styres af log4j-sorus.properties, og denne afhænger af hvad der er blevet sat op. Det er muligt slet ikke at få en applikation log på disken, hvis dette ønskes (ikke anbefalet).

...