API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) · पाठ

वैश्विक फ़िल्टर और GatewayFilterFactory

वैश्विक फ़िल्टर की अवधारणा समझिए और सामान्य रूपांतरणों के लिए अंतर्निहित GatewayFilterFactories का उपयोग करना सीखिए।

पाठ 1, कुल 4 में से11 चरण

वैश्विक फ़िल्टर और GatewayFilterFactory, CoddyKit पर API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

गेटवे फ़िल्टर क्या होते हैं

Spring Cloud Gateway में, फ़िल्टर ऐसे इंटरसेप्टर की तरह होते हैं जो आपको आने वाले HTTP अनुरोधों या जाने वाली HTTP प्रतिक्रियाओं में बदलाव करने देते हैं।

वे आपकी API ट्रैफ़िक से संबंधित साझा सरोकारों, जैसे सुरक्षा, लॉगिंग या डेटा रूपांतरण, को लागू करने का शक्तिशाली तरीका प्रदान करते हैं।

प्री- और पोस्ट-फ़िल्टर

Spring Cloud Gateway फ़िल्टर निष्पादन के दो मुख्य प्रकारों का समर्थन करता है:

  • प्री-फ़िल्टर: अनुरोध डाउनस्ट्रीम सेवा को भेजे जाने से पहले निष्पादित होते हैं। प्रमाणीकरण, लॉगिंग या अनुरोध हेडर में बदलाव के लिए उपयोगी।
  • पोस्ट-फ़िल्टर: डाउनस्ट्रीम सेवा से प्रतिक्रिया प्राप्त होने के बाद लेकिन क्लाइंट को वापस भेजे जाने से पहले निष्पादित होते हैं। प्रतिक्रियाओं में बदलाव, कैशिंग या त्रुटि प्रबंधन के लिए उपयोगी।

ग्लोबल फ़िल्टर को समझना

Global Filter उस हर एक अनुरोध पर लागू होता है, जो गेटवे से होकर गुजरता है, चाहे वह किसी भी विशिष्ट रूट से मेल खाता हो।

इसलिए ये उन चिंताओं के लिए आदर्श होते हैं, जो आपके सभी API ट्रैफ़िक को प्रभावित करती हैं, जैसे सभी सेवाओं के लिए वैश्विक लॉगिंग, सुरक्षा जाँच या मेट्रिक्स संग्रह।

वे GlobalFilter इंटरफ़ेस को लागू करते हैं।

कस्टम Global Filter बनाना

आइए, एक सरल वैश्विक फ़िल्टर बनाएँ, जो आने वाले अनुरोध का पथ लॉग करे। इसे GlobalFilter और Ordered को लागू करना होगा।

इस Spring Boot ऐप को चलाएँ और http://localhost:8080/test/hello पर जाएँ। आपको कंसोल में लॉग दिखाई देगा!

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.core.Ordered;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;

@SpringBootApplication
public class GatewayApp {

    public static void main(String[] args) {
        SpringApplication.run(GatewayApp.class, args);
    }

    // A simple route for demonstration
    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes()
            .route("test_route", r -> r.path("/test/**")
                .uri("http://httpbin.org:80")) // Public test service
            .build();
    }

    @Component
    static class MyLoggingFilter implements GlobalFilter, Ordered {
        @Override
        public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
            System.out.println("Global Filter: Request Path -> " + exchange.getRequest().getPath());
            return chain.filter(exchange); // Continue filter chain
        }

        @Override
        public int getOrder() {
            return -1; // Execute very early
        }
    }
}

फ़िल्टर क्रम को समझना

जब कई फ़िल्टर (वैश्विक या रूट-विशिष्ट) मौजूद हों, तो उनके निष्पादन का क्रम महत्वपूर्ण होता है।

Ordered इंटरफ़ेस लागू करने वाले फ़िल्टर getOrder() विधि का उपयोग करके अपनी प्राथमिकता निर्धारित करते हैं। कम मान का अर्थ है अधिक प्राथमिकता (पहले निष्पादित होना)।

  • ऋणात्मक मान: बहुत अधिक प्राथमिकता।
  • धनात्मक मान: कम प्राथमिकता।
  • स्पष्ट क्रम के बिना फ़िल्टर अक्सर बाद में चलते हैं।

GatewayFilterFactory क्या है?

जहाँ GlobalFilter हर जगह लागू होते हैं, वहीं GatewayFilterFactory ऐसे पुनः उपयोग योग्य और कॉन्फ़िगर किए जा सकने वाले फ़िल्टर उपलब्ध कराता है, जिन्हें आप विशिष्ट रूट पर लागू कर सकते हैं।

Spring Cloud Gateway में सामान्य कार्यों के लिए कई अंतर्निर्मित फ़ैक्टरी शामिल हैं, जैसे हेडर जोड़ना या हटाना, पथ को फिर से लिखना या दर सीमाएँ लागू करना। आप इन्हें प्रत्येक रूट के लिए कॉन्फ़िगर करते हैं।

AddRequestHeader फ़ैक्टरी का प्रयोग

AddRequestHeader फ़ैक्टरी बैकएंड सेवा को भेजे जाने से पहले अनुरोध में एक स्थिर हेडर जोड़ती है।

यह उदाहरण चलाएँ और http://localhost:8080/add-header/test पर जाएँ। httpbin.org से मिलने वाली प्रतिक्रिया में जोड़ा गया हेडर दिखाई देगा!

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class GatewayApp {

    public static void main(String[] args) {
        SpringApplication.run(GatewayApp.class, args);
    }

    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes()
            .route("add_header_route", r -> r.path("/add-header/**")
                .filters(f -> f.addRequestHeader("X-Gateway-Custom", "CoddyKit"))
                .uri("http://httpbin.org:80/headers")) // Shows request headers
            .build();
    }
}

अन्य अंतर्निर्मित फ़ैक्टरियों का परिचय

Spring Cloud Gateway कई अन्य शक्तिशाली GatewayFilterFactory कार्यान्वयन भी प्रदान करता है:

  • RemoveRequestHeader: निर्दिष्ट हेडर हटाता है।
  • RewritePath: अनुरोध के URI पथ को बदलता है।
  • Retry: विफल अनुरोधों को दोबारा भेजता है।
  • RateLimiter: अनुरोधों पर दर सीमा लागू करता है।

ये फ़ैक्टरियाँ कस्टम कोड लिखे बिना गेटवे के सामान्य कार्यों को सरल बनाती हैं।

Global Filter बनाम रूट-विशिष्ट फ़िल्टर

आपको Global Filter का उपयोग कब करना चाहिए और GatewayFilterFactory का कब?

  • Global Filters चुनें: सभी अनुरोधों को प्रभावित करने वाली साझा चिंताओं के लिए (जैसे वैश्विक सुरक्षा और लॉगिंग)।
  • GatewayFilterFactory चुनें (रूट-विशिष्ट): कुछ API या रूट समूहों से संबंधित तर्क के लिए (जैसे API संस्करण निर्धारण, विशिष्ट हेडर में बदलाव या किसी विशेष एंडपॉइंट पर दर सीमा)।

Global Filter जाँच

एक Spring Cloud Gateway ऐप्लिकेशन पर विचार कीजिए। Global Filters के बारे में कौन-सा कथन TRUE है?

Global Filters और फ़ैक्टरियों का पुनरावलोकन

हमने Global Filters का अध्ययन किया, जो सभी अनुरोधों पर लागू होते हैं, और एक कस्टम फ़िल्टर बनाना सीखा। हमने GatewayFilterFactory का भी परिचय लिया, जो विशिष्ट रूट के लिए पुनः उपयोग योग्य और कॉन्फ़िगर किए जा सकने वाले फ़िल्टर उपलब्ध कराता है।

शक्तिशाली और लचीले API गेटवे बनाने के लिए इन फ़िल्टर प्रकारों को समझना और यह जानना बहुत महत्वपूर्ण है कि उनका उपयोग कब करना है।

शुरुआत निःशुल्क

एआई शिक्षक के साथ API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “वैश्विक फ़िल्टर और GatewayFilterFactory” पाठ निःशुल्क है?

हाँ—“वैश्विक फ़िल्टर और GatewayFilterFactory” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“वैश्विक फ़िल्टर और GatewayFilterFactory” में मैं क्या सीखूँगा?

वैश्विक फ़िल्टर की अवधारणा समझिए और सामान्य रूपांतरणों के लिए अंतर्निहित GatewayFilterFactories का उपयोग करना सीखिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“वैश्विक फ़िल्टर और GatewayFilterFactory” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. वैश्विक फ़िल्टर और GatewayFilterFactory
  2. कस्टम अनुरोध और प्रतिक्रिया फ़िल्टर
  3. फ़िल्टर से पूर्व और पश्च-प्रसंस्करण
  4. उपयोगी अंतर्निहित GatewayFilters
← API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) पर वापस जाएँ