Versjonssammenligning

Nøkkel

  • Denne linjen ble lagt til.
  • Denne linjen ble fjernet.
  • Formateringen ble endret.

Denne siden er ment for å gir en oversikt over de viktigste API-ene som bør eller kan være nyttig å bruke i et søknadssystem.

Opprett instans

Hver innsending er en instans av en altinn 3 app. Oversikt og forklaring på variabler brukt på denne siden:

Utvid
title{miljø}

https://

...

dibk.

...

Kodeblokk
POST {miljø}/dibk/{app}/instances
Headers: {Authorization: bearer [Exchanged ID-porten- eller Maskinportentoken]}
Kodeblokk
Body:
{
    "appId": "dibk/{app}",
    "instanceOwner": {
        //"organisationNumber": "{organisationNumber}"
        //"personNumber": "{personNumber}"
    }
}

Multipart Request

Instanser kan og opprettes som multipart request der man laster opp data samtidig som man oppretter instansen

Kodeblokk
Body:
{
    "appId": "dibk/{app}",
    "instanceOwner": {
        //"organisationNumber": "{organisationNumber}"
        //"personNumber": "{personNumber}"
    }
    "{DataType.Id}": File
    "{DataType.Id}": File 
}

Se instans

Se informasjon om den aktuelle instansen.

Kodeblokk
GET {miljø}/dibk/{app}/instances/{instance.id}
Headers: {Authorization: bearer [Exchanged ID-porten- eller Maskinportentoken]}

Se aktive instanser

atlassian.net/wiki/spaces/FB/pages/3017605169/Altinn3+App#Milj%C3%B8

Utvid
title{app}

https://dibk.atlassian.net/wiki/spaces/FB/pages/3017605169/Altinn3+App#Url-til-tjenester

Utvid
title{instance.id}

Id på en bestemt instans. Tilgjengelig i responsen når man oppretter en instans. Man og benytte endepunkt for å sjekke hvilke instanser man har opprettet https://dibk.atlassian.net/wiki/spaces/FB/pages/edit-v2/3018620929#Se-aktive-instanser og bruke instans.id derfra.

Utvid
title{instanceOwner.PartyId}

https://dibk.atlassian.net/wiki/spaces/FB/pages/edit-v2/3018620929#PartyId

Instanser

En instans er en potensiell innsending av tjenesten. Instanser vil være tilgjengelig for instanseier fra de blir opprettet og helt til de eventuelt blir slettet.

PartyId

Hver bruker har en unik identifikator i altinn - instanceOwner.partyId

Denne kan man finne ved å kalle endepunktety /parties med aktuelt ID-porten token.

Kodeblokk
GET {miljø}/dibk/{app}/api/v1/parties
Headers: {Authorization: bearer [Exchanged ID-porten]}
Utvid
titlePartyId er en del av instans.id og tilgjengelig i instans objektet
image-20240806-103324.pngImage Added

Se aktive instanser

Dette endepunktet kan benyttes for å avgjøre om en ny instans av en app skal opprettes eller om det er mer hensiktsmessig å fortsette utfylling av en eksisterende instans.

...

https://docs.altinn.studio/nb/api/apps/instances/#get-active-instances

Kodeblokk
GET {miljø}/dibk/{app}/instances/{instanceOwnerPartyIdinstanceOwner.PartyId}/active
Headers: {Authorization: bearer [Exchanged ID-porten- eller Maskinportentoken]}

Data elementer

Hver tjeneste har et sett med tillatte datatyper som kan være konfigurert på ulike måter.

Hvilke datatyper som finnes på den aktuelle appen, og hvordan de er konfigurert, finner man ved å kalle appen sitt API endepunkt:

...

Opprett instans

Hver innsending er en instans av en altinn 3 app.

https://docs.altinn.studio/api/apps/instances/

Kodeblokk
POST {miljø}/dibk/{app}/applicationMetadata 

https://docs.altinn.studio/nb/api/models/app-metadata/#datatype

allowedContributers : [org:dibk]

...

instances
Headers: {Authorization: bearer [Exchanged ID-porten- eller Maskinportentoken]}
Kodeblokk
Body:
{
    "appId": "dibk/{app}",
    "instanceOwner": {
        //"organisationNumber": "{organisationNumber}"
        //"personNumber": "{personNumber}"
    }
}

Multipart Request

Instanser kan og opprettes som multipart request der man laster opp data samtidig som man oppretter instansen

Kodeblokk
Body:
{
    "appId": "dibk/{app}",
    "instanceOwner": {
        //"organisationNumber": "{organisationNumber}"
        //"personNumber": "{personNumber}"
    }
    "{DataType.Id}": File
    "{DataType.Id}": File 
}

Se instans

Se informasjon om den aktuelle instansen.

Kodeblokk
GET {miljø}/dibk/{app}/instances/{instance.id}
Headers: {Authorization: bearer [Exchanged ID-porten- eller Maskinportentoken]}

Slett instans

https://docs.altinn.studio/nb/api/apps/instances/#delete-instance

Med tanke på sikkerhet bør data ikke lagres lenger enn nødvendig. Vi anbefaler derfor å rydde opp og slette instanser som ikke lenger er i bruk, enten fordi de er fullført eller ikke skal brukes mer. Sletting av instanser kan utføres både av instanseier og tjenesteeier. Dersom DiBK etablerer rutiner for sletting av instanser som tilsynelatende ikke er i bruk, vil dette bli dokumentert på de aktuelle tjenestenes egne sider.

Kodeblokk
DELETE {miljø}/dibk/{app}/instances/{instance.id}
Headers: {Authorization: bearer [Exchanged ID-porten- eller Maskinportentoken]}

Data elementer

Hver tjeneste har et sett med tillatte datatyper som kan være konfigurert på ulike måter.

Hvilke datatyper som finnes på den aktuelle appen, og hvordan de er konfigurert, finner man ved å kalle appen sitt API endepunkt:

Kodeblokk
GET {miljø}/dibk/{app}/applicationMetadata 

https://docs.altinn.studio/nb/api/models/app-metadata/#datatype

allowedContributers : [org:dibk]

Dette er satt på datatyper som ikke er ment for sluttbruker å laste opp, men datatyper som dibk bruker for å tilgjengeliggjøre data for sluttbruker å lese.

Eksemspel på dette kan være valideringsrapport, signatur eller en signert PDF som dibk har produsert ut fra søknadsdata som er lastet opp av sluttburker.

Når en instans blir validert, enten ved å kalle valideringsendepunktet på appen eller som en del av prosessen ved "process next", vil appen sjekke om innholdet i instansen samsvarer med konfigurasjonenkonfigurasjonen. I tillegg vil enkelte ting sjekkes allerede ved opplasting av dataelementer.

Utvidet filvalidering

Enkelte datatyper har “utvidet filvalidering” ved opplasting. De aktuelle datatypene er konfigurert med enabledFileValidators og enabledFileAnalysers.

Vi ser for oss å bruke dette på alle datatyper som forventer innhold i henhold til bestemte datamodeller og dermed kjøre en skjemavalidering. Eksempel hovedskjema og underskjema i en søknad.

Virus scanning

https://docs.altinn.studio/nb/app/development/configuration/filescan/

Enkelte datatyper har virus scanning ved opplasting. De aktuelle datatypene er konfigurert med "enableFileScan": true.

Foreløpig gjelder dette alle datatyper. Her kommer det endringer om vi ser det som unødvendig å kjøre for hver fil. /filescan/

Enkelte datatyper har virus scanning ved opplasting. De aktuelle datatypene er konfigurert med "enableFileScan": true.

Foreløpig gjelder dette alle datatyper. Her kommer det endringer om vi ser det som unødvendig å kjøre for hver fil.

Metadata om vedlegg

Sluttbruker skal kunne legge på metadata på enkelte vedlegg. Dette er ment å erstatte “vedleggsopplysninger” fra altinn2 løsningen.
Metadata vil være av typen “key-value”, og key verdien vil bli validert mot et sett med lovlige verdier definert på datatypen - allowedKeysForUserDefinedMetadata.
Dersom ingenting er definert er det ikke noe begrensninger.

allowedContributers definert på datatypen, vil også her styre om man har lov til å legge på metadata på dataelementet.

Se mer om hvordan man legget til metadata her

Last opp data

https://docs.altinn.studio/api/apps/data-elements/#upload-data

...

Kodeblokk
PUT {miljø}/dibk/{app}/instances/{instance.id}/data/{data.id}
Headers: {
          Authorization: bearer [Exchanged ID-porten- eller Maskinportentoken],
          Content-Disposition: attachment; filename=oppdatert.xml,
       Authorization: bearer [Exchanged IDContent-porten- eller Maskinportentoken],Type: application/xml
         }
Binary Content-Disposition: attachment; filename=oppdatert.xml,
          Content-Type: application/xml
         }
Binary File: oppdatert.xml 

Se data

Kodeblokk
GETFile: oppdatert.xml 

Se data

Kodeblokk
GET {miljø}/dibk/{app}/instances/{instance.id}/data/{data.id}
Headers: {Authorization: bearer [Exchanged ID-porten- eller Maskinportentoken]}

Slett data

Kodeblokk
DELETE {miljø}/dibk/{app}/instances/{instance.id}/data/{data.id}
Headers: {Authorization: bearer [Exchanged ID-porten- eller Maskinportentoken]}

Legg til metadata om vedlegg

Kodeblokk
PUT {miljø}/dibk/{app}/instances/{instance.id}/data/{data.id}}/user-defined-metadata
Headers: {Authorization: bearer [Exchanged ID-porten- eller Maskinportentoken]}

Slett data

Kodeblokk
DELETE {miljø}/dibk/{app}/instances/{instance.id}/data/{data.id}
Headers: {Authorization: bearer [Exchanged ID-porten- eller Maskinportentoken]}

Metadata
Status
colourYellow
titleunder arbeid

Merknad

Altinn jobber fortsatt med dette, så mer informasjon kommer når det er klart.

Det skal være mulig å laste opp metadata på dataelementer.
Dette er ment å erstatte “vedleggsopplysninger” fra altinn2 løsningen.

Metadata vil være av typen “key-value” og key verdien vil bli validert mot et sett med lovlige verdier.
Mer informasjon kommer når løsningen er klar.

PDF

Vi har ikke tatt i bruk Altinn sin PDF-generering, men utviklet vår egen løsning for dette.

...



Body: 
{
  "userDefinedMetadata": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}

Se metadata på vedlegg

Du kan hente kun “User-defined-metadata”, men det vil og være synlig på dataelementet om man gjør en GET på instans

Kodeblokk
GET {miljø}/dibk/{app}/instances/{instance.id}/data/{data.id}/user-defined-metadata
Headers: {Authorization: bearer [Exchanged ID-porten eller Maskinportentoken]}

Respons: 
{
  "userDefinedMetadata": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}

PDF

Det blir produsert en PDF av både hovedskjemaet og eventuelle underskjemaer. Brukerne skal kunne hente en forhåndsvisning av PDF-en før signering, samt en signert versjon når søknaden er sendt inn og signert av brukeren.Hver app konfigureres med hvilke datatyper det produseres PDF av, men denne informasjonen er ikke tilgjengelig i appens metadata da dette ikke er en del av Altinn-løsningen. Informasjonen skal i stedet være tilgjengelig på egne dokumentasjonssider for den aktuelle tjenestenav brukeren.

Forhåndsvisning

Man kan få en forhåndsvisning av PDF-en ved å kalle pdfpreview på enten instansen eller på det aktuelle dataelementet.

Forhåndsvisning på instansen: Ved å kalle pdfpreview på instansen, vil du få en PDF-forhåndsvisning med data på den datatypen som er konfigurert som hovedskjemaet for appenDet er forskjell om man henter ut forhåndsvisning av et hovedskjema eller underskjema.

Hovedskjema

Advarsel

Venter på avklaring om endepunkt for forhåndsvisning av hovedskjema PDF på Altinn appen.
Endepunktet /pdf/preview er i utgangspunktet konfigurert til å kun være tilgjengelig i test-miljøet, men mulig de velger å videreføre det.

Kodeblokk
GET {miljø}/dibk/{app}/instances/{instance.id}/pdf/pdfpreviewpreview
Headers: {
          Authorization: bearer [Exchanged ID-porten- eller Maskinportentoken]
         }

...

   }

Underskjema

Gjelder for datatyper som er definert som underskjema

Ved å kalle pdfpreview på et dataelement, vil du få en PDF-forhåndsvisning med data på det aktuelle dataelementet, dersom datatypen er konfigurert for PDF-generering.

Kodeblokk
GET {miljø}/dibk/{app}/instances/{instance.id}/data/{data.id}/pdfpreview
Headers: {
          Authorization: bearer [Exchanged ID-porten- eller Maskinportentoken]
         }

...

Advarsel

Ikke konfigurert

Respons: 400 Bad Request: “Det er ikke støtte for å generere PDF av datatypen {datatype.id}. Tillatte datatyper er {datatype.id}, {datatype.id} …

Signert PDF

Den signerte PDF-en blir tilgjengelig som et dataelement på instansen. Datatypen som brukes vil kan være konfigurert forskjellig i de ulike appene, så informasjon om dette vil være tilgjengelig på egne dokumentasjonssider for den aktuelle tjenesten.

Den signerte PDF-en blir produsert etter at det er gjort en Altinn-signatur og appen har gått videre til prosessens slutt (process end). Den signerte PDF-en vil deretter være tilgjengelig på den aktuelle datatypen, og man kan gjøre en GET-forespørsel på dataelementet for å hente den.

Kodeblokk
GET {miljø}/dibk/{app}/instances/{instance.id}/data/{data.id} // Signert pdf
Headers: {Authorization: bearer [Exchanged ID-porten- eller Maskinportentoken]}

Altinn-signering

Status
colourYellow
titleunder arbeid

...

Signering er en prosessoppgave i Altinn https://docs.altinn.studio//nb/altinn-studio/reference/process/actions/process-actions/#sign.

...