Skip to content

Latest commit

 

History

History
52 lines (42 loc) · 1.7 KB

README.md

File metadata and controls

52 lines (42 loc) · 1.7 KB

Webservice eksempel

Dette er et enkelt (men også fortenkt) eksempel på en webservice skrevet i Go.

Det består i hovedsak av tre lag:

  1. Transportlag (main.go): Dette laget gjør alt som har med transport (i dette tilfellet HTTP) å gjøre. Det vil si dekode JSON, sende til servicen, håndtere feil og mappe tilbake til HTTP og JSON.
  2. Servicelag (pets/service.go): Her ligger forretningslogikken. Servicen har et veldefinert grensesnitt (både i form av funksjoner og typer/data) og implementerer forretningslogikken som vi prøver å løse.
  3. Persistenslag (repository/database.go): I dette laget foregår all kommunikasjon med hva enn vi bruker til å lagre data med. I dette eksempelet bruker vi bare en map i minne men det kunne også være en database-klient eller lignende.

Siden dette er et veldig fortenkt eksempel kan det virke som om det er for mye mapping mellom typer som ellers er make til hverandre. Man kan selv vurdere hvor mye man ønsker å følge dette paradigmet. På lenger sikt kan det være veldig nyttig å holde ting adskilt, hvis man senere trenger å legge om til gRPC for eksempel.

Det er kun brukt komponenter fra standardbiblioteket her men det kan gjøre livet lettere å se på en annen implementasjon av Mux, for eksempel Gorilla Mux.

Se også

Bibliotek som kan være til hjelp:

Kontakt

Ricco Førgaard [email protected] eller @ricco på GDG Bergen Slack.