अनुरोध और रिस्पॉन्स वैरिएबल

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

किसी एपीआई प्रॉक्सी से अनुरोध करने पर, यहां दी गई कोई भी या सभी जानकारी पास की जा सकती है, एपीआई प्रॉक्सी को कॉन्फ़िगर करने के तरीके के हिसाब से:

  • अनुरोध के हेडर
  • क्वेरी पैरामीटर
  • फ़ॉर्म डेटा
  • एक्सएमएल या JSON पेलोड
  • संसाधन यूआरआई

डिफ़ॉल्ट रूप से, किसी अनुरोध का सारा डेटा ProxyEndpoint से TargetEndpoint. इसलिए, जब TargetEndpoint, बैकएंड सर्वर से अनुरोध करता है, तो सभी मूल अनुरोध में मौजूद जानकारी को बैकएंड सेवा को भेजा जाता है.

यही बात, एज को बैकएंड सेवा से मिलने वाले रिस्पॉन्स पर भी लागू होती है. डिफ़ॉल्ट रूप से, सभी रिस्पॉन्स में मिले डेटा को उसी ऐप्लिकेशन में पास किया जाता है जिससे जनरेट हुआ है अनुरोध.

अनुरोध डेटा को बैकएंड में कैसे पास किया जाता है सर्वर?

नीचे दी गई इमेज में एपीआई प्रॉक्सी की परिभाषा दिखाई गई है:

एचटीटीपी सेवा तक पहुंचने के लिए, बैकएंड पर प्रॉक्सी एंडपॉइंट से पास होने वाले एचटीटीपी क्लाइंट का अनुरोध करें. प्रॉक्सी एंडपॉइंट और टारगेट एंडपॉइंट के उदाहरण दिए गए हैं.

इस एपीआई प्रॉक्सी के लिए:

  • एपीआई प्रॉक्सी वर्चुअल होस्ट: "डिफ़ॉल्ट"
  • वर्चुअल होस्ट ने यह डोमेन तय किया है: "http://myOrg-prod.apigee.net"
  • प्रॉक्सी बेस पाथ: "/v1/weather"
  • रूट नियम से तय किया गया TargetEndpoint: "डिफ़ॉल्ट"
  • टारगेट यूआरएल: "http://weather.yahooapis.com"

कोई क्लाइंट ऐप्लिकेशन, एपीआई प्रॉक्सी को GET का अनुरोध भेजने के लिए, इनका इस्तेमाल करता है curl निर्देश:

curl -X GET http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282

ध्यान दें कि इस अनुरोध में संसाधन "पूर्वानुमान" शामिल है और एक क्वेरी पैरामीटर, w. Edge, अनुरोध को इस तरह पार्स करता है ये नीचे दिए गए हैं और फ़्लो वैरिएबल के लिए अनुरोध के कुछ हिस्से असाइन करते हैं:

{request.verb} {proxy.basepath}/{proxy.pathsuffix}?{request.querystring}

फ़्लो वैरिएबल इन वैल्यू के साथ सेट किए जाते हैं:

  • request.verb: "पाएं"
  • proxy.basepath: "/v1/Weather"
  • proxy.pathsuffix: "पूर्वानुमान"
  • request.querystring: "w=12797282"

इसके बाद, TargetEndpoint बैकएंड सेवा को एक अनुरोध भेजता है, तो वह अनुरोध:

{request.verb} {target.basepath}/{proxy.pathsuffix}?{request.querystring}

देखें कि अनुरोध में बताए गए संसाधन और क्वेरी पैरामीटर अपने-आप कैसे शामिल किए जाते हैं में शामिल कर सकते हैं. TargetEndpoint की परिभाषा से, अनुरोध करने के बाद यह फ़ॉर्म है:

curl -X GET http://weather.yahooapis.com/forecastrss?w=12797282

क्वेरी पैरामीटर की तरह ही, ऐसा कोई भी हेडर या फ़ॉर्म पैरामीटर जिसे आपने एपीआई के अनुरोध में शामिल किया है प्रॉक्सी को बैकएंड सर्वर पर पास किया जाता है. उदाहरण के लिए, आपने नीचे दिया गया अनुरोध किया है जिसमें हेडर:

curl -X GET -H 'Content-type:application/xml' http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282

इसके अलावा, नीचे दिए गए फ़ॉर्म में हेडर और फ़ॉर्म का डेटा शामिल करने का अनुरोध किया जा सकता है:

curl -X POST -H "Content-type:application/json" -d \
  '{"email" : "janetutorialxml@example.com",
    "firstName" : "Jane",
    "lastName" : "Tutorial",
    "userName" : "jtutorialxml"
  }' \
  http://myOrg-prod.apigee.net/v1/register/user

दोनों उदाहरणों में, हेडर और फ़ॉर्म का डेटा, बैकएंड सेवा में बिना कोई बदलाव किए पास किया जाता है. कॉन्टेंट बनाने हेडर को request.headers.count और जैसे फ़्लो वैरिएबल से दिखाया जाता है request.headers.names. फ़ॉर्म डेटा को फ़्लो वैरिएबल से दिखाया जाता है, जैसे कि request.formparam.count और request.formparam.names.

रिस्पॉन्स का डेटा कैसे दिखाया जाता है?

डिफ़ॉल्ट रूप से, रिस्पॉन्स में बैकएंड सेवा से Edge को मिला सारा डेटा पास कर दिया जाता है इसमें कोई बदलाव नहीं होगा. जैसा कि अनुरोध के लिए ऊपर बताया गया है, रिस्पॉन्स के तौर पर दिए गए जवाब को Edge पर फ़्लो वैरिएबल के ज़रिए ऐक्सेस किया जा सकता है. ज़्यादा जानकारी के लिए, फ़्लो वैरिएबल का रेफ़रंस देखें.

अनुरोध और रिस्पॉन्स का डेटा इसमें ऐक्सेस करें एक एपीआई प्रॉक्सी

कई बार आप अनुरोध डेटा को बैकएंड पर भेजने से पहले उसे संशोधित करना चाहते हैं सर्वर. उदाहरण के लिए:

  • Edge की ओर से अनुरोधों की पुष्टि करने के लिए इस्तेमाल की जाने वाली सुरक्षा से जुड़ी जानकारी को हटाने के लिए. वह जानकारी बैकएंड सेवा के लिए ज़रूरी है.
  • बैकएंड सेवा को भेजा गया डेटा जोड़ने के लिए. उदाहरण के लिए, उपयोगकर्ताओं को ट्रैक करना या इकट्ठा करना Analytics.
  • अनुरोध के डेटा के आधार पर, किसी अनुरोध को शर्तों के साथ प्रोसेस करने के लिए. उदाहरण के लिए, एपीआई प्रॉक्सी में कई TargetEndpoints हैं. अनुरोध के लिए इस्तेमाल किया गया TargetEndpoint, अनुरोध के हिसाब से तय किया जाता है डेटा शामिल है. इसके बाद, डेटा को बैकएंड सेवा पर भेजने से पहले, आपको अनुरोध से उस डेटा को हटा देना चाहिए.

यही बात, रिस्पॉन्स में दिए गए डेटा पर भी लागू होती है. रिस्पॉन्स को प्रोसेस करने के दौरान, एपीआई प्रॉक्सी अनुरोध करने वाले ऐप्लिकेशन पर डेटा को वापस करने से पहले, शायद आप डेटा में बदलाव करना चाहें.

ऐक्सेस के अनुरोध वाले मैसेज

अनुरोध किए गए मैसेज के कुछ हिस्सों को ऐक्सेस करने और उनमें बदलाव करने के लिए, नीतियों का इस्तेमाल किया जा सकता है. इनमें ये शामिल हैं:

  • हेडर
  • क्वेरी पैरामीटर
  • फ़ॉर्म पैरामीटर
  • सोर्स का आईपी पता
  • एचटीटीपी मैसेज का मुख्य हिस्सा

सामान्य तरीके में, अनुरोध प्रोसेस होने के बाद प्रॉक्सी, बदली गई टारगेट के लिए अनुरोध करते हैं.

नीतियां, अनुरोध के वैरिएबल की जांच कर सकती हैं. इसके बाद, इन आधार पर अनुरोध को बदल या अस्वीकार कर सकती हैं: तय करें. नीतियां, सही वैरिएबल सेट करके अनुरोध को बदल देती हैं. उदाहरण के लिए, अनुरोध हेडर से जुड़े वैरिएबल.

रिस्पॉन्स मैसेज ऐक्सेस करना

रिस्पॉन्स मैसेज पर लागू होने वाले वैरिएबल का इस्तेमाल करके, नीतियां, मैसेज के कॉम्पोनेंट ऐक्सेस कर सकती हैं इसमें हेडर, क्वेरी पैरामीटर, और फ़ॉर्म पैरामीटर, सोर्स आईपी पता, एचटीटीपी मैसेज का मुख्य हिस्सा वगैरह.

प्रॉक्सी को एक रिस्पॉन्स मैसेज मिलता है. इसके बाद, वह प्रॉक्सी सर्वर पर अलग-अलग नीतियों के हिसाब से लागू होता है इन शर्तों का आकलन किया जाता है, जो जवाब में बदलाव कर सकती हैं या उसे बदल सकती हैं.

नीतियां, रिस्पॉन्स वैरिएबल की जांच कर सकती हैं. इसके बाद, इन आधार पर अनुरोध को बदल या अस्वीकार कर सकती हैं: तय करें. नीतियां सही वैरिएबल सेट करके रिस्पॉन्स को बदल देती हैं. उदाहरण के लिए, रिस्पॉन्स हेडर से जुड़े वैरिएबल.

फ़्लो वैरिएबल को ऐक्सेस करने के लिए आम नीतियां

Edge में ऐसी कई नीतियां हैं जिनका इस्तेमाल, अनुरोध और उसके जवाब के डेटा को प्रोसेस करने के लिए किया जा सकता है. ये नीतियों में ये शामिल हैं:

  • assignMessage नीति: यह एपीआई प्रॉक्सी के दौरान एचटीटीपी अनुरोध या रिस्पॉन्स मैसेज बनाता है या उनमें बदलाव करता है फ़्लो. नए फ़्लो वैरिएबल भी बनाता और पॉप्युलेट करता है.
  • ExtractVariables नीति: मैसेज से कॉन्टेंट निकालें. इसमें हेडर, यूआरआई पाथ, पेलोड, और क्वेरी पैरामीटर का इस्तेमाल किया जाता है. इसके बाद, यह नीति इन पर टेक्स्ट पैटर्न लागू करती है और मिलान मिलने पर एक निर्धारित वैरिएबल सेट कर दिया जाता है.
  • JSONtoXML नीति और XMLtoJSON नीति: JavaScript ऑब्जेक्ट नोटेशन (JSON) के मैसेज को एक्सटेंसिबल मार्कअप लैंग्वेज में बदलता है (एक्सएमएल) फ़ॉर्मैट का इस्तेमाल कर सकते हैं.
  • Javaकॉलआउट नीति, JavaScript नीति, PythonScript नीति, regularexpressionProtection नीति: इन नीतियों की मदद से, फ़्लो वैरिएबल को ऐक्सेस करने के लिए स्क्रिप्ट लिखी जा सकती है इसमें अनुरोध और रिस्पॉन्स का डेटा शामिल होता है.