Søke etter dialoger
Hvordan søke etter og filtrere dialoger i Dialogporten
For bleeding edge, select "Dev", as this contains the most recent unreleased changes to the Dialogporten API. Select "Local dev" if you want to test changes to Dialogporten itself running locally.
Introduksjon
Denne veiledningen viser hvordan du søker etter dialoger i Dialogporten. Sluttbruker-API-et støtter både REST og GraphQL. Tjenesteeier-API-et støtter REST-søk med ekstra filtre som er nyttige når du administrerer dialoger og sluttbrukerkontekst.
Merk at datastrukturen som returneres i søk er forskjellig fra den som returneres fra detaljendepunktet; mer informasjon om dialogen og hvilken tilgang den autoriserte brukeren har til ulike deler av den er bare tilgjengelig i detaljvisningen.
Grunnleggende steg (REST, sluttbruker)
- Autentiser som sluttbruker
- Finn partene som den autentiserte sluttbrukeren er autorisert til å representere
- Utfør en GET-forespørsel til
/api/v1/enduser/dialogs, og oppgi query-parametere i henhold til tabellen nedenfor:
- Alle parametere av ulike typer kombineres med OG, dvs. hvis du oppgir
partyogstatus, returneres bare dialoger med den oppgitte statusen som eies av den oppgitte parten. - Når flere verdier støttes for samme parameter, kombineres disse med ELLER, dvs. hvis du oppgir to
status-parametere, returneres dialoger som har en av disse verdiene. org-parametere må være tjenesteeierkoder slik de er definert i den globale altinn-orgs.json, f.eks.digdirellerskd.party-parametere må ha ett av følgende formaterurn:altinn:person:identifier-no:<11 siffer fødselsnummer>urn:altinn:organization:identifier-no:<9 siffer organisasjonsnummer>
serviceResource-parametere må referere til en ressurs i Resource Registry og bruke følgende format:urn:altinn:resource:<identifier>
serviceResource eller party er oppgitt.Returnert informasjon
Dette vil returnere en samling av dialoger, som inneholder et delsett av informasjonen som returneres fra endepunktet for dialogdetaljer. Avhengig av søkeparametere og tilgangen til den autentiserte brukeren kan denne listen være tom.
Hvis ugyldige søkeparametere oppgis, returnerer API-et 400 Bad Request og et svar som forklarer hvilke feil som ble funnet. Dette svaret følger standardformatet ProblemDetails.
Paginering
Søke-API-et er paginert ved hjelp av fortsettelsestoken, se parameteren limit ovenfor. Hvis det finnes flere sider som kan hentes, vil egenskapen hasNextPage være satt til true, og egenskapen continuationToken vil være satt til en verdi som skal brukes for å hente neste side. For å hente neste side oppgir du denne verdien som query-parameteren continuationToken. Dette bevarer sorteringen og unngår å miste elementer eller hente dem to ganger. Dette bør gjentas så lenge hasNextPage er true.
Sortering
Sortering kan utføres på følgende kolonner:
- ContentUpdatedAt
- CreatedAt
- UpdatedAt
- DueAt
contentupdatedat er den anbefalte kolonnen når du sorterer dialoger for innboks-lignende visninger og for best ytelse.
Hvis ingen eksplisitt sortering oppgis, er standardrekkefølgen contentupdatedat_desc.
Eksempler
Dette er eksempelverdier som kan oppgis i query-parameteren OrderBy.
contentupdatedat_desccreatedatcreatedat_ascdueat_asc
Gjeldende sortering finner du i samlingsmodellen, ved siden av feltene continuationToken og hasNextPage. I REST er sorteringen også bygget inn i continuationToken, så det er tilstrekkelig å oppgi fortsettelsestokenet alene for å bevare sorteringen.
Grunnleggende steg (REST, tjenesteeier)
- Autentiser som tjenesteeier
- Utfør en GET-forespørsel til
/api/v1/serviceowner/dialogs, og oppgi query-parametere i henhold til tabellen nedenfor:
Søkeendepunktet for tjenesteeier støtter de samme grunnleggende dialogfiltrene som sluttbrukerendepunktet, og eksponerer i tillegg filtre for:
serviceOwnerLabels, der alle oppgitte etiketter må matcheserviceOwnerLabelsmed*-suffiks for prefikssøk, for eksempelfinance*visibleAfterogvisibleBefore
endUserId. Hvis endUserId er oppgitt, må minst én av serviceResource eller party også være oppgitt.Hvis du trenger å hente revisjoner og systemetiketter for sluttbrukerkontekst uten hele dialogsøkeresultatet, se referansen for systemetiketter, som dokumenterer det dedikerte endepunktet /api/v1/serviceowner/dialogs/endusercontext.
Grunnleggende steg (GraphQL, sluttbruker)
GraphQL eksponerer søkeoperasjonen for sluttbruker som searchDialogs. En typisk flyt er:
- Autentiser som sluttbruker
- Bruk
getPartiesfor å finne parti-URN-ene du kan søke på - Kall
searchDialogs
Eksempel:
query SearchDialogs($party: [String!]) {
searchDialogs(
input: {
party: $party
limit: 20
orderBy: [{ contentUpdatedAt: DESC }]
}
) {
items {
id
party
status
process
createdAt
updatedAt
contentUpdatedAt
endUserContext {
revision
systemLabels
}
}
hasNextPage
continuationToken
orderBy {
createdAt
updatedAt
dueAt
contentUpdatedAt
}
errors {
message
}
}
}
GraphQL-input støtter de samme implementerte filtrene for sluttbruker som REST-endepunktet, inkludert:
serviceResourcepartystatusprocesssystemLabelexcludeApiOnlyisContentSeensearchsearchLanguageCode
De samme underliggende valideringsreglene gjelder som i REST. Spesielt må minst én av party eller serviceResource oppgis.
Aksepterte språk
GraphQL bruker den samme Accept-Language-headeren som REST-API-et. Hvis den er oppgitt, bruker Dialogporten den headeren når lokaliserte innholdsverdier velges og sorteres i svaret.
Paginering
Paginering i GraphQL bruker feltene continuationToken, hasNextPage og orderBy i payloaden.
- Bruk det returnerte
continuationTokenfor å hente neste side - Bruk den samme
orderBypå nytt når du sender neste forespørsel - Hvis
continuationTokener satt, må ogsåorderByvære satt