منصوبے کے بارے میں

Feign ایک اوپن سورس جاوا لائبریری ہے جو اعلانیہ، اینوٹیشن پر مبنی طریقہ استعمال کرکے HTTP کلائنٹ لکھنے کو آسان بناتی ہے۔ دستی طور پر HTTP درخواستیں بنانے کے بجائے، ڈویلپرز ایک جاوا انٹرفیس کی وضاحت کرتے ہیں جس میں اینوٹیشنز HTTP طریقہ، URL ٹیمپلیٹ، ہیڈرز، اور باڈی کو بیان کرتی ہیں، اور Feign رن ٹائم پر عمل درآمد پیدا کرتا ہے۔ یہ لائبریری Retrofit، JAX-RS 2.0، اور WebSocket تصریحات سے متاثر ہے۔ اس کا بنیادی مقصد جاوا کوڈ کو HTTP APIs سے یکساں طور پر جوڑنے کی پیچیدگی کو کم کرنا ہے، چاہے API REST کنونشنز پر عمل کرے یا نہ کرے۔ اہم خصوصیات میں شامل ہیں: - @RequestLine، @Param، @Headers، @QueryMap، @HeaderMap، اور @Body استعمال کرتے ہوئے اینوٹیشن پر مبنی انٹرفیس تعریفیں - RFC 6570 لیول 1 کے بعد URI ٹیمپلیٹ ایکسپریشن سپورٹ، محدود لیول 3 پاتھ اسٹائل ایکسپریشن سپورٹ کے ساتھ - JSON (Gson، Jackson، Moshi، Fastjson2)، XML (JAXB، SAX)، اور SOAP کے لیے حسب ضرورت انکوڈرز اور ڈیکوڈرز - OkHttp، Java 11 HTTP/2 کلائنٹ، اور سروس ڈسکوری کے لیے Ribbon سمیت پلگ ایبل HTTP کلائنٹ بیک اینڈز - Hystrix کے ذریعے سرکٹ بریکر انٹیگریشن - SLF4J کے ساتھ لاگنگ انٹیگریشن - کنیکٹ/ریڈ ٹائم آؤٹ اور ریڈائریکٹ فالو کرنے جیسے قابل ترتیب درخواست اختیارات - متحرک URL ریزولوشن اور درخواست کی سجاوٹ کے ساتھ متعدد انٹرفیس ٹارگٹس کے لیے سپورٹ - Expander انٹرفیس کے ذریعے حسب ضرورت پیرامیٹر توسیع Feign 10.x اور اس سے اوپر جاوا 8 پر بنائے گئے ہیں اور جاوا 9، 10، اور 11 کے ساتھ مطابقت رکھتے ہیں۔ JDK 6 مطابقت کے لیے، Feign 9.x دستیاب ہے۔ روڈ میپ میں منصوبہ بند خصوصیات شامل ہیں جن میں رسپانس کیشنگ، مکمل URI ٹیمپلیٹ ایکسپریشن سپورٹ (لیول 1-4)، Logger اور Retry API ری فیکٹرز، CompletableFuture کے ذریعے غیر مطابقت پذیر عملدرآمد، Reactive Streams کے ذریعے رد عمل پر مبنی عملدرآمد، اور Resilience4J جیسی اضافی سرکٹ بریکر سپورٹ شامل ہے۔ Feign Maven Central پر io.github.openfeign گروپ آئی ڈی کے تحت دستیاب ہے۔ پروجیکٹ میں GitHub اور Wikipedia APIs کے لیے مثال کلائنٹ شامل ہیں، اور Netflix Denominator پروجیکٹ کے ساتھ انٹیگریٹ ہوتا ہے۔