RestTemplate (dept44-starter-resttemplate)

Denna starter förenklar användningen av Spring Frameworks RestTemplate som REST-klient. För att använda den, lägg till följande i tjänstens pom.xml:

<dependency> <groupId>se.sundsvall.dept44</groupId> <artifactId>dept44-starter-resttemplate</artifactId> </dependency>


Användning

RestTemplateBuilder används för att skapa upp en REST-klient (RestTemplate):

RestTemplate restTemplate = new RestTemplateBuilder() .withBaseUrl("https://api.github.com/") [1] .withLogbook(...) [2] .withOAuth2Client(...) [3] .withBasicAuthentication(...) [4] .withConnectTimeout(...) [5] .withReadTimeout(...) [6] .build(); [7] ... String user = "Sundsvallskommun"; List<Repo> repos = restTemplate.exchange( "/users/{user}/repos", HttpMethod.GET, HttpEntity.EMPTY, new ParameterizedTypeReference<List<Repo>>() {}, Map.of("user", user)); ...

[1] Anger bas-URL för REST-klienten som skapas.
[2] Om angiven sätts request- och response-loggning upp.
[3] Om angiven, sätts OAuth2-autentisering upp. Tar in en ClientRegistration, t.ex.:

@Bean ClientRegistrationclientRegistration() { returnClientRegistration.withRegistrationId("someId") .clientId("someClientId") .clientSecret("someClientSecret") .tokenUri("https://somehost.com/token") .authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS) .build(); }

[4] Om angiven (användarnamn och lösenord) sätts Basic-autentisering upp.
[5] Anger connect timeout. Default-värde är 10 sekunder.
[6] Anger read timeout. Default-värde är 60 sekunder.
[7] Skapar själva REST-klienten.