Versions Compared

Key

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

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:

Code Block
languagexml
<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):

Code Block
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.:

Code Block
languagejava
@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.