Feign Client – انجمن DEV

مشتری ظاهرییک کتابخانه سرویس گیرنده HTTP است که توسط Netflix توسعه یافته و اغلب در ادغام با Spring Cloud استفاده می شود. Feign یک رویکرد ساده و شهودی برای سادهسازی تماسهای HTTP API ارائه میکند. Feign که برای تعامل با سرویسهای وب RESTful استفاده میشود، کد مشتری HTTP را تا حد زیادی کاهش میدهد و نوشتن کدهای تمیزتر و قابل نگهداریتر را امکانپذیر میسازد.
استفاده از Feign Client
1. وابستگی های Feign را اضافه کنید
pom.xml
وابستگی های زیر را به فایل خود اضافه کنید:
org.springframework.cloud
spring-cloud-starter-openfeign
2. Feign Client را فعال کنید
به کلاس برنامه اصلی شما @EnableFeignClients
حاشیه نویسی را اضافه کنید:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableFeignClients
public class KitapyurdumServiceApplication {
public static void main(String[] args) {
SpringApplication.run(KitapyurdumServiceApplication.class, args);
}
}
3. رابط کاربری Feign Client را تعریف کنید
یک رابط برای ساختن سرویس ایجاد کنید. این رابط روش های HTTP برای فراخوانی را مشخص می کند. مثلا:
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@FeignClient(name = "kitap-api", url = "http://localhost:8080/api")
public interface KitapApiClient {
@GetMapping("/kitaplar/{id}")
Kitap getKitapById(@PathVariable("id") Long id);
}
4. استفاده از Feign Client
با استفاده از Feign Client میتوانید در یک کلاس جزء یا سرویس تزریق کنید تا یک تماس API برقرار کنید:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class KitapService {
private final KitapApiClient kitapApiClient;
@Autowired
public KitapService(KitapApiClient kitapApiClient) {
this.kitapApiClient = kitapApiClient;
}
public Kitap getKitap(Long id) {
return kitapApiClient.getKitapById(id);
}
}
مزایای Feign Client
- آسان برای استفاده: Feign Client دسترسی آسان و شهودی به API های HTTP را فراهم می کند.
- کد پاک: Feign تا حد زیادی کد سمت مشتری را کاهش می دهد و نوشتن کد را تمیزتر و قابل نگهداری تر می کند.
- Spring Cloud ile ادغام: ادغام دقیق با Spring Cloud به Feign Client اجازه می دهد تا به راحتی در پروژه های Spring Boot استفاده شود.
- حاشیه نویسی های اعلامی: Feign از حاشیه نویسی های ساده برای توصیف درخواست های HTTP استفاده می کند که روند توسعه را سرعت می بخشد.
نمونه سناریو
یک سیستم مدیریت کتاب را در نظر بگیرید. می خواهید اطلاعات کتاب را از سرویس دیگری بازیابی کنید. Feign Client به شما این امکان را می دهد که در چنین سناریوهایی به راحتی تماس های HTTP برقرار کنید. با تعریف Feign Client که با سرویس کتاب در تعامل است، می توانید درخواست های HTTP را با فراخوانی روش ساده انجام دهید.
Feign Client ابزاری است که اغلب در معماری های میکروسرویس استفاده می شود و تعامل با سرویس های وب RESTful را بسیار ساده می کند. به لطف این ویژگی ها، Feign Client نقش مهمی در اکوسیستم Spring Cloud ایفا می کند.