Versions Compared

Key

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

...

[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] Anger om REST-klienten ska följa omdirigeringar. Default-värde är true.
[8]-[12] Kan, om så önskas, användas för att exempelvis använda en alternativ HTTP-klient eller för att konfigurera retry-policy och liknande.
[13] Skapar själva REST-klienten, av given typ.

Notera att det inte går att använda FeignBuilder där OAuth2- och Basic-autentisering konfigureras samtidigt.

Alternativ 2 - annoteringar

TODOFörst och främst behövs ett klient-interface:

Code Block
languagejava
@FeignClient(
    name = "myGithubClient",                        [1]
    url = "https://api.github.com/",                [2]
    configuration = GithubClientConfiguration.class [3]
)
public interface GithubClient {

    @GetMapping("users/{user}/repos")
    List<Repo> getRepositories(@PathVariable("user") String user);
}

[1] Anger namn på Feign-klienten
[2] Anger bas-URL för klienten. Kan resolve:a properties, t.ex. från konfiguration ("${some.url}")
[3] Anger en konfigurationsklass för klienten - en vanlig Spring-konfiguration där alla ingående bönor används för att konfigurera klienten.

En tänkbar konfiguration för klienten:

Code Block
languagejava
@Import(FeignConfiguration.class)
class GithubClientConfiguration {

    @Bean
    RequestInterceptor basicAuthInterceptor(String username, String password) {
        return FeignHelper.basicAuthInterceptor(username, password);
    }

    @Bean
    FeignBuilderCustomizer feignBuilderCustomizer() {
        return FeignHelper.customizeRequestOptions()
            .withConnectTimeout(Duration.ofSeconds(60))
            .withReadTimeout(Duration.ofSeconds(5))
            .build();
    }
}

...

TODO:

  • beskrivning

  • konfiguration

  • exempel på hur buildern används

  • exempel på hur “annoterings-konfiguration” används