इस प्रोजेक्ट के बारे में

फीग्न एक ओपन-सोर्स जावा लाइब्रेरी है, जो घोषणात्मक और एनोटेशन-चालित दृष्टिकोण का उपयोग करके HTTP क्लाइंट लिखना आसान बनाती है। मैन्युअल रूप से HTTP अनुरोध बनाने के बजाय, डेवलपर एक जावा इंटरफेस परिभाषित करते हैं जिसमें एनोटेशन के माध्यम से HTTP विधि, URL टेम्पलेट, हेडर और बॉडी वर्णित होते हैं, और फीग्न रनटाइम पर उसका कार्यान्वयन उत्पन्न करता है। यह लाइब्रेरी Retrofit, JAX-RS 2.0 और WebSocket विनिर्देशों से प्रेरित है। इसका मुख्य लक्ष्य जावा कोड को HTTP API से समान रूप से जोड़ने की जटिलता को कम करना है, चाहे API REST परंपराओं का पालन करता हो या नहीं। मुख्य विशेषताओं में शामिल हैं: - @RequestLine, @Param, @Headers, @QueryMap, @HeaderMap और @Body का उपयोग कर एनोटेशन-आधारित इंटरफेस परिभाषाएँ - RFC 6570 Level 1 के अनुसार URI टेम्पलेट एक्सप्रेशन समर्थन, साथ ही सीमित Level 3 path-style एक्सप्रेशन समर्थन - JSON (Gson, Jackson, Moshi, Fastjson2), XML (JAXB, SAX) और SOAP के लिए अनुकूलन योग्य एनकोडर और डिकोडर - OkHttp, Java 11 HTTP/2 Client और सेवा खोज के लिए Ribbon सहित प्लग करने योग्य HTTP क्लाइंट बैकएंड - Hystrix के माध्यम से सर्किट ब्रेकर एकीकरण - SLF4J के साथ लॉगिंग एकीकरण - कनेक्ट/रीड टाइमआउट और रीडायरेक्ट फॉलोइंग जैसी कॉन्फ़िगर करने योग्य अनुरोध विकल्प - डायनामिक URL रिज़ॉल्यूशन और अनुरोध सजावट के साथ कई इंटरफेस लक्ष्यों का समर्थन - Expander इंटरफेस के माध्यम से कस्टम पैरामीटर विस्तार फीग्न 10.x और उसके बाद के संस्करण Java 8 पर निर्मित हैं तथा Java 9, 10 और 11 के साथ संगत हैं। JDK 6 संगतता के लिए फीग्न 9.x उपलब्ध है। रोडमैप में प्रतिक्रिया कैशिंग, पूर्ण URI टेम्पलेट एक्सप्रेशन समर्थन (Levels 1-4), Logger और Retry API पुनर्गठन, CompletableFuture के माध्यम से अतुल्यकालिक निष्पादन, Reactive Streams के माध्यम से प्रतिक्रियाशील निष्पादन, और Resilience4J जैसे अतिरिक्त सर्किट ब्रेकर समर्थन जैसी नियोजित विशेषताओं की रूपरेखा दी गई है। फीग्न Maven Central पर io.github.openfeign groupId के अंतर्गत उपलब्ध है। परियोजना में GitHub और Wikipedia API के लिए उदाहरण क्लाइंट शामिल हैं, और यह Netflix Denominator परियोजना के साथ एकीकृत होती है।