Ramverket dept44
är modulariserat, i den mening att man vid utveckling av tjänster bara använder de starters (moduler) man har behov av. Viss gemensam funktionalitet, såsom exempelvis felhantering, loggning och generering av OpenAPI-specifikation tillhandahålls i en bas-starter, men i övrigt är funktionaliteten uppdelad:
Starter | Inkluderas… |
---|---|
…alltid (bas-starter med gemensam funktionalitet) | |
…om du vill använda Feign som REST-klient | |
…om du vill använda RestTemplate som REST-klient | |
…om du vill använda WebClient som REST-klient | |
…om du vill integrera mot en SOAP-tjänst | |
… (fler starters) |
Det finns inga restriktioner eller konflikter mellan olika starters - har man behov av mer än en typ av klient använder man helt enkelt de starters som behövs.
Ramverket tillhandahåller en artefakt som alla utvecklade tjänster bör ha som förälder i sitt Maven-projekt:
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>se.sundsvall.dept44</groupId> <artifactId>dept44-service-parent</artifactId> <version>[dept44-version att använda]</version> </parent> <groupId>se.sundsvall</groupId> <artifactId>ett-api</artifactId> <version>0.1-SNAPSHOT</version> ... </project>
Artefakten fungerar som en Maven-POM och ser därmed till att rätt versioner av de beroenden som ramverket tillhandahåller används, samt att viss gemensam konfiguration utförs. Den ser även till att ramverkets bas-starter (dept44-starter
) alltid inkluderas i utvecklade tjänster.
Vidare aktiveras filtrering på resurser i katalogerna src/main/resources
och src/test/resources
så att man i resurserna kan använda platshållare på formatet @propertyNamn@
.
För integrationstester läggs katalogerna src/integration-test/java
och src/integration-test/resources
till som källkods- respektive resurs-rötter.