...
[1]
Anger namn på Feign-klienten[2]
Anger bas-URL för klienten. Kan resolve:a utgöras av Spring EL-uttryck/properties, t.ex. från konfiguration (t.ex. "${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
Exempel på klient-konfiguration:
Code Block | ||
---|---|---|
| ||
@Import(FeignConfiguration.class) class GithubClientConfiguration { @Bean RequestInterceptor basicAuthInterceptor(String username, String password) { [1] return FeignHelper.basicAuthInterceptor(username, password); } @Bean FeignBuilderCustomizer feignBuilderCustomizer() { [2] return FeignHelper.customizeRequestOptions() .withConnectTimeout(Duration.ofSeconds(60)) .withReadTimeout(Duration.ofSeconds(5)) .build(); } } |
TODO:
...
beskrivning
...
konfiguration
...
exempel på hur buildern används
...
Ifall konfigurationen definierar någon böna av typen RequestInterceptor
, likt [1]
, kommer den automatiskt att knytas in i Feign-klienten. I exemplet används en utility-klass från ramverket - FeignHelper
- för att skapa en interceptor för Basic-autentisering. FeignHelper
har även stöd för att jacka in exempelvis en interceptor för OAuth2 och för att anpassa timeouts likt [2]
.
Utifrån ovan kan sedan klienten autowire:as in som en vanlig Spring-komponent där den behövs:
Code Block | ||
---|---|---|
| ||
public class MyClass {
private GithubClient ghClient;
public MyClass(GithubClient ghClient) {
this.ghClient = ghClient;
}
public List<Repo> getRepositories(String user) {
return ghClient.getRepositories(user);
} |