Refrofit kütüphanesi OpenFeign yerine tercih edilebilir
Gradle
Şöyle yaparız
implementation ‘org.springframework.cloud:spring-cloud-square-retrofit:0.4.1’implementation ‘org.springframework.cloud:spring-cloud-square-okhttp:0.4.1’
Örnek
Şöyle yaparız
@EnableRetrofitClients(basePackages = "com.oguzderici.retrofitdemo.clients") @Configuration public class RetrofitConfiguration { @Bean @LoadBalanced public OkHttpClient.Builder okHttpClientBuilder() { return new OkHttpClient.Builder() .addInterceptor(new HttpLoggingInterceptor() .setLevel(HttpLoggingInterceptor.Level.BASIC)); } }
Arayüzler için şöyle yaparız
@RetrofitClient(name = "welcome-service", configuration = AuthenticationConfig.class) public interface WelcomeRetrofitClient { @GET("/v1/whoiam") Call<WelcomeResponse> callName(@Query("name") String name); @POST("/v1/welcome") Call<WelcomeResponse> callSuccess(@Body WelcomeRequest welcomeRequest); @PUT("/v1/welcome/{id}") Call<WelcomeResponse> callWithFail(@Path("id") String id, @Body WelcomeRequest welcomeRequest); @DELETE("/v1/welcome/{id}") Call<Void> deleteWelcomeRequest(@Path("id") String id); } @RequiredArgsConstructor @Configuration public class AuthenticationConfig { private final TokenInterceptor tokenInterceptor; private final AuthenticatorInterceptor authenticatorInterceptor; private final HeaderInterceptor headerInterceptor; @Bean @LoadBalanced public OkHttpClient.Builder okHttpClientBuilder() { return new OkHttpClient.Builder() .addInterceptor(tokenInterceptor) .addInterceptor(headerInterceptor) .authenticator(authenticatorInterceptor); } }
Hiç yorum yok:
Yorum Gönder