Kodeeksempler kodeverk

Generer klientkode med OpenAPI generator

Vi anbefaler å bruke en OpenAPI kodegenerator for å generere klientkode. Da kommer du rakst opp å kjøre og koden er basert på våres OpenAPI API kontrakt slik at du får forholder deg til riktige typer.

I dette eksemplet bruker vi en typescript generator

Bruk din favoritt pakkehåndterer for å installere pakken. Vi bruker PNPM.

pnpm install @hey-api/openapi-ts 

Deretter er det bare å kjøre generatoren. Endre konfigurasjon til å passe med dine preferanser. Vi bruker axios som HTTP klient, derfor må vi installere hey-api modulen for denne:

 pnpm install @hey-api/client-axios

Kjør generator

npx @hey-api/openapi-ts -i https://yrkesskade-ekstern-gateway.nav.no/kodeverk/v3/api-docs  -o ./client/src/api/kodeverk --client @hey-api/client-axios

Hvis genereringen var vellykket, skal du nå ha klientkoden du behøver for å kommunisere med våres kodeverk API

Mer dokumentasjon av generator:

Konfigurere generert klient

Anbefaler å sjekke ut dokumentajsonen til generator og valgt HTTP klient.

BaseUrl er spesifisert i kontrakten som som koden genereres fra så denne trenger ikke settes manuelt. Hvis dere også vil ta i bruk testmiljøet, så må dere endre denne til å peke mot testmiljøet (dev). Oversikt over URL til de ulike miljøene finner du på forsiden

import { client as kodeverkKlient } from './api/kodeverk/client.gen';

kodeverkKlient.setConfig({
    baseURL:  "https://yrkesskade-ekstern-gateway.nav.no",
    /*
    // auth: Maksinporten token eller funksjon som returnerer maskinportentoken

    // Eventult brukt
    headers: {
        Authorization: 'Bearer <MAKSINPORTEN_TOKEN>',
    },

     */
})

Hent liste med alle typer

const {data } = await hentKodeverktyper()

if (!data) {
    return;
}

/*
export type KodetypeDto = {
    navn?: string;
    beskrivelse?: string;
    antallKategorier: number;
};
*/

const listeMedAlleTyper : KodetypeDto[] = data.typer

Hent liste med alle rolletyper

const { data } = await hentListeKodeverdierForType({
                    path: {
                        typenavn: 'rolletype',
                    },
                });

if (!data){
    return
}

const mapMedAlleRolletyper = data.kodeverdierMap

const verdiForArbeidstaker = mapMedAlleRolletyper['arbeidstaker']
console.log(verdiForArbeidstaker) // Arbeidstaker