Hvordan publisere Altinn App-hendelser
Veiledning for publisering av Altinn App-hendelser
Er du en Altinn App-utvikler?
Vennligst se Altinn Apps-dokumentasjonen for veiledning om hvordan du aktiverer hendelsesfunksjonaliteten og definerer egendefinerte hendelser i din Altinn App.
Siden publisering av app-hendelser håndteres av kjernelogikken i applikasjonen, er denne dokumentasjonen kun relevant for utviklere som arbeider med kjerneapplikasjonslogikk, dvs. applikasjonsmalen.
Endepunkt
POST /app
Autentisering
Dette API-et krever autentisering og et Platform Access Token i headeren.
Se Autentisering og autorisasjon for mer informasjon.
Headere
Idempotency-Key (valgfri)
En GUID du selv genererer for å identifisere forespørselen. Headeren lar deg gjenta samme forespørsel trygt, uten at Altinn Events registrerer hendelsen flere ganger.
Hvis Altinn Events allerede har registrert en hendelse med samme idempotency-nøkkel, gir forespørselen fortsatt en vellykket respons, men Altinn Events lagrer ikke hendelsen på nytt.
Verdien må være en gyldig GUID. Hvis ikke, avviser Altinn Events forespørselen med en 400 Bad Request-respons. Du kan ikke gjenbruke verdien på tvers av hendelser.
Forespørsel
Content-type
application/json
Request body
Request body skal inneholde Cloud Event formatert som en AppCloudEventRequestModel og serialisert som en JSON-streng.
Events vil håndtere å sette ID og tid på Cloud Event.
Påkrevde Cloud Event-egenskaper og utvidelsesattributter
type
- hendelsestype for Cloud Event, type: string
source
- hendelseskilde for Cloud Event, type: URI
subject
- party ID for instanceOwner, type: string
Format på subject-strengen: /party/{partyId}
specversion
- Cloud Events spesifikasjonsversjon, type: string
Valgfrie Cloud Event-egenskaper og utvidelsesattributter
alternative subject
- alternativ identifikator for subject, type: string
Det alternative subject bør være en identifikator som er allment kjent for dine abonnenter. Denne egenskapen støttes som en spørre-/filterparameter ved abonnering eller spørring av hendelser. Vi anbefaler å inkludere et alternativt subject hvis subject-egenskapen er en intern ID som er ukjent for hendelsesabonnentene.
For Altinn-relaterte hendelser følger alternative subject formatet /person/16069412345
og /organisation/987564321.
Respons
En vellykket registrering av Cloud Event skal resultere i en 201 Created-respons med GUID til Cloud Event-instansen som payload.
Content-Type
- application/json
Responskoder
201 Created: Cloud Event ble registrert vellykket
400 Bad Request: Forespørselen var ugyldig.
Se problemdetaljer i responskroppen for mer informasjon.
401 Unauthorized: Indikerer en manglende, ugyldig eller utløpt autorisasjonsheader, eller at appen ikke er autorisert til å publisere hendelser for den oppgitte kilden.
403 Forbidden: Indikerer at Platform Access Token mangler eller er ugyldig.
Eksempler
Forespørsel
Merk at Platform Access og Altinn tokens skal settes inn i headerne.
curl \
--location 'https://platform.altinn.no/events/api/v1/app' \
--header 'Content-Type: application/json' \
--header 'PlatformAccessToken: {Sett inn Platform Access token}' \
--header 'Authorization: Bearer {Sett inn Altinn token}' \
--header 'Idempotency-Key: {Sett inn en GUID}' \
--data '{
"type": "app.instance.created",
"source": "https://ttd.apps.altinn.no/ttd/apps-test/instances/50019855/428a4575-2c04-4400-89a3-1aaadd2579cd",
"subject": "/party/50019855",
"specversion": "1.0",
"alternativesubject": "/person/01017512345"
}'
Respons
200 OK
Responsen inneholder ID-en for Cloud Event.
"4815d141-8cf6-4555-8c3c-e069c7b80c79"
400 Bad Request
Responsen inneholder et problemdetaljeobjekt med feilmeldingen i detail-egenskapen.
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Bad Request",
"status": 400,
"detail": "Missing parameter values: source, subject and type cannot be null",
"traceId": "00-4b54a6a0c9b74bf5afc5e917863f96fd-eb14b06c1f0c3cf8-00"
}