Du har fått i oppdrag å lage et api for håndtering av ansattinformasjon for Sonat Consulting.
- utlisting av alle ansatte
- uthenting av ansatt på bakgrunn av id
- sletting av ansatt på bakgrunn av id
- oppdatering av ansatt på bakgrunn av id
En ansatt representeres som Employee objekt med følgende egenskaper:
{ Id, FirstName, LastName }
Lag en OpenAPI spesifikasjon som definerer kontrakten. Om du ønsker, kan du benytte SwaggerEditor.
Implementer api som du definerte i Oppgave 1. Programmeringsspråk er valgfritt.
Du finner eksempelkode for:
Implementer testing i postman
Følgende oppsett fra Auth0 kan brukes:
Authority/Domain: https://sonat.eu.auth0.com/
Audience: https://auth.sonat.dev
For å få en token, kan du logge inn på denne siden:
https://auth-tester.sonat.dev
På siden får du se din id token og access token. Du kan se på innhold av tokenet på https://jwt.io
Access tokenet skal ha et permissions-claim, som inneholder read:employees
.
I tillegg er der definert en tilgang som hetter modify:employees
. Denne
kan settes opp manuelt. Gi en lyd til arrangørende av fagdagen
for å gjøre dette for en bruker.
Sett opp tilgang slik:
- at brukere med
read:employee
permissions får tilgang tilGET
endepunktene i APIet. - og brukere med
modify:employee
permissions får tilgang tilPOST
,PUT
ogDELETE
endepunktene.
Der finnes eksempel på hvordan dette gjøres for .net her:
https://auth0.com/docs/quickstart/backend/aspnet-core-webapi
Eksempel kotlin: https://ktor.io/servers/features/authentication/jwt.html (Bruk JWK eksemplet)
Se også gjerne på eksempel implementasjonene vi har laget på github: https://github.com/Sonat-Consulting/fagdag-openapi