Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Lombok - Ett bibliotek för att automatiskt “generera” boilerplate-kod - Guide för att installera plugin för Eclipse och IntelliJ finns här.

  • SonarLint - Scannar Skannar kod för att hitta buggar och sårbarheter.

  • Snyk’s Vulnerability Scanner - Skannar beroenden och identifierar sårbarheter.

  • fler…

Språk och ramverk

Förstahandsvalet för utveckling av backendtjänster skall vara Java, med hjälp av ramverket Spring Boot. Se bakgrunden till det nya beslutet.
För SpringBoot har ett gemensamt bibliotek utvecklats. Rekommendationen är att använda detta. Läs mer: Dept44

Databas

MariaDB används som databas i produktion. Både Quarkus och Spring Boot har bra stöd för integration mot MariaDB.
Ett tips är att använda Hibernate ORM för att generera upp databastabeller, då det blir väldigt enkelt att köra samma kod med t.ex. H2.

...

  • Maven dependencies: springdoc-openapi-webmvc-core samt springdoc-openapi-ui

  • Kräver att man exponerar en OpenAPI-böna, beskrivs här under punkt 8.
    Url:en för swagger-ui styrs om m.h.a. följande property: springdoc.swagger-ui.path=/swagger-ui.html
    Url:en för openapi-dokumentationen styrs av följande property: springdoc.api-docs.path=/api-docs,
    Url:erna blir följande:

    • Swagger-ui: http://service:port/swagger-ui.html

    • Yaml: http://service:port/api-docs.yaml

    • eller i JSON: http://service:port/api-docs

OBS: Använder man ramverket Dept44 följer Springdoc med per automatik och konfigureras automatiskt.

Quarkus:

  • Maven dependency: quarkus-smallrye-openapi

  • application.properties: mp.openapi.extensions.smallrye.openapi=3.0.2

...

Alla tjänster som exponerar ett API som någon av våra andra tjänster nyttjar bör läggas in i detta repo.
Varje ändring i tjänsten som resulterar i en API-förändring bör föras in i “generated-clients” reflekteras i repot och en uppdaterad klient bör genereras och pushas till nexus.

...