In dit artikel laten we zien hoe je een simpele microservice kunt maken met Spring Boot. De service die we gaan maken heeft drie end-points die allemaal een random waarde terug geven. We beschrijven twee manieren, de eerste manier is via de Spring Initializr, de tweede manier is vanuit de InteliJ IDEA. Dit is voor het opzetten van je project. De invulling van de service beschrijven we in een algemeen gedeelte, want dat is hetzelfde voor allebei de manieren. Let’s go!
Microservice project opzetten met Spring Initializr
- Ga naar https://start.spring.io/
- Selecteer Maven project
- Selecteer Java
- Selecteer de nieuwste niet-snapshot versie van Spring Boot versie 2
- Vul de volgende gegevens in de Project Metadata
- Group: nl.trailblazers.example
- Artifact: randomService
- Name: randomService
- Description: Service die random waarden teruggeeft
- Package name: nl.trailblazers.example.randomservice
- Packaging: jar
- Java: 17
- Klik Add dependencies en selecteer Spring Boot DevTools onder Developer Tools
- Klik Add dependencies en selecteer Spring Web Services onder Web
- Klik op Generate
- Sla de zip op
- Pak de zip uit
- Open het project in je favoriete IDE
Microservice project opzetten met InteliJ IDEA
- Open InteliJ
- Ga naar File → New → Project
- Selecteer Spring Initilizr
- Vul de volgende gegevens in:
- Name: randomService
- Location: de plek waar je je project wil opslaan
- Language: Java
- Type: Maven
- Group: nl.trailblazers.example
- Artifact: randomService
- Package name: nl.trailblazers.example.randomservice
- Project SDK: 17
- Java: 17
- Packaging: Jar
- Pak een lekker drankje terwijl je bezig bent
- Klik op Next
- Selecteer de nieuwste niet snapshot versie van Spring Boot versie 2
- Selecteer Download pre-built shared indexes for JDK and Maven libraries
- Onder dependencies selecteer
- Spring Boot DevTools onder Developer Tools
- Spring Web Services onder Web
- Klik op Finish
- Klik op New Window
- Je project is geopend
Microservice algemeen: invullen service
- Onder src → main → java staat de package nl.trailblazers.example.randomservice
- Hier staat de RandomServiceApplication, deze is gegenereerd door de spring initilizr en dit is het startpunt van je Spring Boot applicatie
- Creëer een package nl.trailblazers.example.randomservice.controller
- Creëer hier een nieuwe class RandomOutputController
- Voeg de volgende annotaties toe boven aan de class
- @RestController
- @RequestMapping(“/random”)
- @CrossOrigin // deze wil je niet in productie code zien
- Voeg een logger toe:
private static final Logger LOG = LoggerFactory.getLogger(RandomOutputController.class);
- Voeg een variabele toe voor de random string:
private final String[] arrayOfStrings = { "Everything is fine", "Alert", "Pod out of memory", "NullPointer Overflow", "Who wrote this", "Nothing to see here" };
- Creëer een endpoint om een random string op te halen:
@GetMapping("/string") public String getRandomString() { LOG.info("Get random string called"); String result = arrayOfStrings[(new Random().nextInt(arrayOfStrings.length))]; LOG.info("Get random string result: {}", result); return result; }
- Creëer een endpoint om een random getal te krijgen tussen de 1 en 5:
@GetMapping("/number") public Integer getRandomInteger() { LOG.info("Get random integer called"); int result = new Random().nextInt(5) + 1; LOG.info("Get random integer returns: {}", result); return result; }
- Creëer een endpoint om een random boolean terug te krijgen:
@GetMapping("/boolean") public Boolean getRandomBoolean() { LOG.info("Get random boolean called"); boolean result = new Random().nextBoolean(); LOG.info("Get random boolean returns: {}", result); return result; }
Microservice gebruiken:
- Start de applicatie op door de class RandomOutputApplication te runnen
- Open een browser
- Ga naar http://localhost:8080/random/string om het endpoint voor de random string aan te roepen. Een random string wordt getoond na elke aanroep.
- Ga naar http://localhost:8080/random/number om het endpoint voor het random getal tussen 1 en 5 aan te roepen. Een random getal wordt getoond na elke aanroep.
- Ga naar http://localhost:8080/random/boolean om het endpoint voor de random boolean aan te roepen. Random wordt true of false getoond na elke aanroep.
Vind je het handige informatie? Het lijkt ons leuk als je het laat weten. Vind je het toch nog lastig of wil je er graag meer over weten? Neem dan gerust contact met Régina op via reginatenbruggencate@trailblazers.nl.