...
[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 | ||
---|---|---|
| ||
@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 | ||
---|---|---|
| ||
@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