पॉलिसी कंपोज़िशन का इस्तेमाल करना

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

इस विषय में, आपको नीति कंपोज़िशन का इस्तेमाल करके मैशअप बनाने का तरीका बताया जाएगा. पॉलिसी कंपोज़िशन एक Apigee प्रॉक्सी पैटर्न है, जिसकी मदद से एक से ज़्यादा बैकएंड से नतीजों को जोड़ा जा सकता है एक ही जवाब में टारगेट करने के लिए, नीतियों का इस्तेमाल करें.

नीति के कंपोज़िशन की सामान्य जानकारी के लिए, "नीति कंपोज़िशन पैटर्न" देखें API प्रॉक्सी कुकबुक में पैटर्न के बारे में ज़्यादा जानें.

सैंपल कोड डाउनलोड करें और आज़माएं

इस कुकबुक के उदाहरण के बारे में जानकारी

कुकबुक के इस उदाहरण में, नीति कंपोज़िशन नाम के एपीआई प्रॉक्सी पैटर्न के बारे में बताया गया है. इस पैटर्न की मदद से, कई बैकएंड सोर्स से डेटा इकट्ठा करने का एक तरीका उपलब्ध है. इसके लिए, कुछ अन्य तरीके इस्तेमाल किए जा सकते हैं. आम तौर पर, यह विषय बताता है कि किस तरह नीतियों को जोड़ा जा सकता है और एक साथ जोड़कर रखा जा सकता है. इससे मनमुताबिक नतीजा मिलेगा. इस पैटर्न और इससे जुड़े दूसरे पैटर्न की खास जानकारी के लिए, इसे देखें API प्रॉक्सी कुकबुक पैटर्न के बारे में ज़्यादा जानें.

यहां बताए गए उदाहरण में, इन दोनों अलग-अलग तरह के डेटा को इकट्ठा करने के लिए, नीति बनाने की प्रोसेस का इस्तेमाल किया गया है सार्वजनिक एपीआई:

  • Google जियोकोडिंग एपीआई: यह एपीआई, पतों को कन्वर्ट करता है (जैसे कि "1600 Amphitheatre Parkway, Mountain View, CA") भौगोलिक निर्देशांक में (जैसे, अक्षांश 37.423021 और देशांतर -122.083739).
  • Google एलिवेशन एपीआई यह एपीआई, धरती पर मौजूद जगहों की ऊंचाई के हिसाब से क्वेरी करने के लिए एक आसान इंटरफ़ेस उपलब्ध कराता है डेटा शामिल है. इस उदाहरण में, Geocoding API से दिखाए गए निर्देशांकों का इस्तेमाल इनपुट के तौर पर किया जाएगा इस एपीआई में डालें.

ऐप्लिकेशन डेवलपर इस एपीआई प्रॉक्सी को दो क्वेरी पैरामीटर, पिन कोड और एक देश के साथ कॉल करेंगे आईडी:

$ curl "http://{myorg}-test.apigee.net/policy-mashup-cookbook?country=us&postalcode=08008"

रिस्पॉन्स, एक ऐसा JSON ऑब्जेक्ट है जिसमें जियोकोड की गई जगह (अक्षांश/देशांतर) शामिल होती है दिए गए पिन कोड क्षेत्र के केंद्र और जियोकोड किए गए उस इलाके की ऊंचाई को स्थान.

{  
   "ElevationResponse":{  
      "status":"OK",
      "result":{  
         "location":{  
            "lat":"39.7500713",
            "lng":"-74.1357407"
         },
         "elevation":"0.5045232",
         "resolution":"76.3516159"
      }
   }
}

शुरू करने से पहले

अगर आपको नीति कंपोज़िशन पैटर्न के बारे में खास जानकारी देखनी है, तो "यह नीति कंपोज़िशन पैटर्न" API प्रॉक्सी कुकबुक में पैटर्न के बारे में ज़्यादा जानें.

कुकबुक के इस उदाहरण को एक्सप्लोर करने से पहले, आपको इन बुनियादी बातों के बारे में भी जानकारी होनी चाहिए कॉन्सेप्ट:

  • नीतियां क्या हैं और उन्हें प्रॉक्सी से कैसे अटैच किया जा सकता है. नीतियों के बारे में अच्छी तरह जानने के लिए, देखें Google News पर की नीति है?.
  • एपीआई प्रॉक्सी फ़्लो का स्ट्रक्चर, जैसा कि फ़्लो कॉन्फ़िगर करना में बताया गया है. फ़्लो आपको वह क्रम तय करें जिसमें एपीआई प्रॉक्सी की मदद से नीतियां लागू की जाती हैं. इस उदाहरण में, कई नीतियां बनाई जाती हैं और एपीआई प्रॉक्सी के फ़्लो में जोड़ी जाती हैं.
  • आपके फ़ाइल सिस्टम पर एपीआई प्रॉक्सी प्रोजेक्ट को कैसे व्यवस्थित किया जाता है, जैसा कि यहां बताया गया है एपीआई प्रॉक्सी कॉन्फ़िगरेशन का रेफ़रंस. कुकबुक के इस विषय में लोकल डेवलपमेंट के बारे में बताया गया है (फ़ाइल जिसमें क्लाउड-आधारित डेवलपमेंट के बजाय मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल किया जा सकता है एपीआई प्रॉक्सी डेवलप करें.
  • एपीआई पासकोड की पुष्टि करने की सुविधा का इस्तेमाल करना. यह ऐप्लिकेशन पर आधारित सुरक्षा का सबसे आसान तरीका है. इसे एपीआई के लिए कॉन्फ़िगर करें. ज़्यादा जानकारी के लिए, एपीआई देखें कुंजियां. आप चाहें तो सुरक्षित को इस्तेमाल करने के लिए, एपीआई पासकोड ट्यूटोरियल ज़रूरी है.
  • एक्सएमएल पर काम करने की जानकारी. इस उदाहरण में, हमने एपीआई प्रॉक्सी बनाया है और उन एक्सएमएल फ़ाइलों से जुड़ी नीतियां जो फ़ाइल सिस्टम में मौजूद होती हैं.

अगर आपने सैंपल कोड डाउनलोड कर लिया है, तो उसमें बताई गई सभी फ़ाइलें ढूंढी जा सकती हैं मैशअप-नीति-कुकबुक के सैंपल फ़ोल्डर में मौजूद विषय. ये सेक्शन सैंपल कोड के बारे में चर्चा करें.

हवा के रुख के साथ चलने वाला

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

डाउनलोड किए गए सैंपल में, आपको यह एक्सएमएल फ़ाइल में मिल सकती है doc-samples/policy-mashup-cookbook/apiproxy/proxies/default.xml.

<ProxyEndpoint name="default">
  <Flows>
    <Flow name="default">
      <Request>
            <!-- Generate request message for the Google Geocoding API -->
            <Step><Name>GenerateGeocodingRequest</Name></Step>
            <!-- Call the Google Geocoding API -->
            <Step><Name>ExecuteGeocodingRequest</Name></Step>
            <!-- Parse the response and set variables -->
            <Step><Name>ParseGeocodingResponse</Name></Step>
            <!-- Generate request message for the Google Elevation API -->
            <Step><Name>AssignElevationParameters</Name></Step>
      </Request>
      <Response>
            <!-- Parse the response message from the Elevation API -->
            <Step><Name>ParseElevationResponse</Name></Step>
            <!-- Generate the final JSON-formatted response with JavaScript -->
            <Step><Name>GenerateResponse</Name></Step>
      </Response>
    </Flow>
  </Flows>

  <HTTPProxyConnection>
    <!-- Add a base path to the ProxyEndpoint for URI pattern matching-->
    <BasePath>/policy-mashup-cookbook</BasePath>
    <!-- Listen on both HTTP and HTTPS endpoints -->
    <VirtualHost>default</VirtualHost>
    <VirtualHost>secure</VirtualHost>
  </HTTPProxyConnection>
  <RouteRule name="default">
    <!-- Connect ProxyEndpoint to named TargetEndpoint under /targets -->
    <TargetEndpoint>default</TargetEndpoint>
  </RouteRule>
</ProxyEndpoint>

यहां फ़्लो के एलिमेंट की खास जानकारी दी गई है.

  • &lt;Request&gt; - <अनुरोध> एलिमेंट में कई &lt;Step&gt; एलिमेंट. हर चरण में उन नीतियों में से एक की ज़रूरत होती है जो हम बाकी नीतियों के आधार पर बनाएंगे इस विषय के बारे में बताया गया है. ये नीतियां, अनुरोध वाला मैसेज बनाने, उसे भेजने, और जवाब पार्स करना. इस विषय के आखिर तक, आप इनमें से हर एक की भूमिका को समझ जाएंगे की नीतियों के बारे में ज़्यादा जानें.
  • &lt;Response&gt; - <Response> एलिमेंट में यह भी शामिल है <Steps>. इन चरणों में उन नीतियों के लिए भी कॉल किया जा सकता है जो फ़ाइनल कन्वर्ज़न प्रोसेस करने के लिए ज़िम्मेदार हैं यह एपीआई, टारगेट एंडपॉइंट से मिलने वाले रिस्पॉन्स के तौर पर काम करता है (Google एलिवेशन एपीआई).
  • &lt;HttpProxyConnection&gt; - यह एलिमेंट ऐप्लिकेशन इस एपीआई प्रॉक्सी से कैसे कनेक्ट होंगे. इसमें <BasePath> भी शामिल है, जो यह बताता है कि इस एपीआई को कॉल किया जाएगा.
  • &lt;RouteRule&gt; - यह एलिमेंट बताता है कि तुरंत क्या होता है इनबाउंड अनुरोध वाले मैसेज प्रोसेस होने के बाद. इस मामले में, TargetEndpoint को कॉल किया जाता है. हम इस विषय में आगे इस अहम चरण के बारे में और चर्चा करेंगे.

नीतियां बनाना

यहां दिए गए सेक्शन में, उन सभी नीतियों के बारे में बताया गया है जो इस नीति को बनाती हैं उदाहरण के लिए.

पहलाassignMessage बनाएं नीति

पहली AssignMessage नीति, नीचे सूचीबद्ध है, और एक अनुरोध संदेश बनाता है जिसे Google जियोकोडिंग को भेजा जाएगा सेवा.

आइए, नीति कोड से शुरुआत करते हैं और फिर हम इसके एलिमेंट के बारे में ज़्यादा जानकारी देंगे. इस सैंपल डाउनलोड, आप फ़ाइल में यह एक्सएमएल doc-samples/policy-mashup-cookbook/apiproxy/policies/GenerateGeocodingRequest.xml.

<AssignMessage name="GenerateGeocodingRequest">
  <AssignTo createNew="true" type="request">GeocodingRequest</AssignTo>
  <Set>
    <QueryParams>
      <QueryParam name="address">{request.queryparam.postalcode}</QueryParam>
      <QueryParam name="region">{request.queryparam.country}</QueryParam>
      <QueryParam name="sensor">false</QueryParam>
    </QueryParams>
    <Verb>GET</Verb>
  </Set>
  <!-- Set variables for use in the final response -->
  <AssignVariable>
    <Name>PostalCode</Name>
    <Ref>request.queryparam.postalcode</Ref>
  </AssignVariable>
  <AssignVariable>
    <Name>Country</Name>
    <Ref>request.queryparam.country</Ref>
  </AssignVariable>
</AssignMessage>

इस नीति में शामिल एलिमेंट के बारे में यहां कम शब्दों में जानकारी दी गई है. इस बारे में ज़्यादा जानने के लिए असाइन करें मैसेज से जुड़ी नीति.

  • <assignMessage name> - इस नीति को कोई नाम देता है. नाम है का इस्तेमाल तब किया जाता है, जब किसी फ़्लो में नीति का संदर्भ दिया जाता है.
  • &lt;AssignTo&gt; - यह नाम वाला एक वैरिएबल बनाता है, जिसे GeocodingRequest कहा जाता है. यह वैरिएबल, अनुरोध ऑब्जेक्ट को इनकैप्सुलेट करता है. इस ऑब्जेक्ट को बैकएंड के ज़रिए सेवाकॉलआउट नीति.
  • &lt;QueryParams&gt; - यह ऐसे क्वेरी पैरामीटर सेट करता है जिनकी ज़रूरत पूरी बैकएंड एपीआई कॉल. इस मामले में, Geocoding API को जगह की जानकारी की ज़रूरत है. पिन कोड और देश का आईडी डालकर दिखाएं. ऐप्लिकेशन का उपयोगकर्ता यह जानकारी देता हो और हम उसे यहां से एक्सट्रैक्ट करते हैं. एपीआई के लिए sensor पैरामीटर ज़रूरी है और सही या गलत होता है, और हम यहां उसे गलत पर हार्डकोड करते हैं.
  • &lt;Verb&gt; - इस मामले में, हम एपीआई.
  • &lt;AssignVariable&gt; - ये वैरिएबल उन वैल्यू को स्टोर करते हैं जो हम एपीआई को पास कर रहा है. इस उदाहरण में, वैरिएबल को बाद में रिस्पॉन्स में ऐक्सेस किया जाएगा क्लाइंट को वापस लौटा दिया गया है.

सेवाकॉलआउट के साथ अनुरोध भेजें

नीति कंपोज़िशन के क्रम का अगला चरण ServiceCallout नीति बनाना है. कॉन्टेंट बनाने सर्विसकॉलआउट नीति वह अनुरोध ऑब्जेक्ट भेजती है जिसे हमने असाइन करता है. साथ ही, सेव किए गए नतीजे को GeocodingResponse नाम का वैरिएबल.

पहले की तरह ही, आइए पहले कोड पर गौर करें. इसके बाद, पूरी जानकारी दी गई है. इन्हें पढ़ा जा सकता है सर्विस कॉलआउट में इस नीति के बारे में ज़्यादा जानें नीति पढ़ें. डाउनलोड किए गए सैंपल में, आपको यह एक्सएमएल फ़ाइल में मिल सकती है doc-samples/policy-mashup-cookbook/apiproxy/policies/ExecuteGeocodingRequest.xml.

<ServiceCallout name="ExecuteGeocodingRequest">
  <Request variable="GeocodingRequest"/>
  <Response>GeocodingResponse</Response>
  <HTTPTargetConnection>
    <URL>http://maps.googleapis.com/maps/api/geocode/json</URL>
  </HTTPTargetConnection>
</ServiceCallout>

यहां इस नीति से जुड़ी चीज़ों के बारे में कम शब्दों में जानकारी दी गई है.

  • &lt;ServiceCallout&gt; - पिछली नीति की तरह ही, इसमें नाम.
  • <अनुरोध वैरिएबल> - यह वह वैरिएबल है जिसे इसमें बनाया गया था 'असाइन मैसेज' नीति की शर्तों को पूरा करना होगा. इसमें बैकएंड एपीआई पर जाने वाला अनुरोध भी शामिल होता है.
  • &lt;Response&gt; - यह एलिमेंट एक वैरिएबल का नाम रखता है, जिसमें रिस्पॉन्स सेव कर लिया जाता है. जैसा कि आपको दिखेगा, इस वैरिएबल को बाद में ExtractVariables से ऐक्सेस किया जाएगा की नीति देखें.
  • &lt;HTTPTargetConnection&gt; - बैकएंड के टारगेट यूआरएल के बारे में बताता है एपीआई. इस मामले में, हम तय करते हैं कि एपीआई से JSON रिस्पॉन्स मिले.

अब हमारे पास दो नीतियां हैं. पहली नीतियां, उस जानकारी के बारे में बताती हैं जो बैकएंड एपीआई (Google का Geocoding API) और दूसरा वह है जो वाकई बैकएंड एपीआई में भी काम करता है. इसके बाद, हम जवाब को हैंडल करेंगे.

जवाब को इससे पार्स करें ExtractVariables

Extractवैरिएबल की नीति से कॉन्टेंट पार्स करने का एक आसान तरीका मुहैया कराती है सर्विसकॉलआउट नीति के ज़रिए मिला जवाब. ExtractVariables का इस्तेमाल पार्स करने के लिए किया जा सकता है JSON या एक्सएमएल, या इसका इस्तेमाल यूआरआई पाथ, एचटीटीपी हेडर, क्वेरी से कॉन्टेंट एक्सट्रैक्ट करने के लिए किया जा सकता है पैरामीटर, और फ़ॉर्म पैरामीटर.

यहां ExtractVariables नीति की सूची दी गई है. इस नीति के बारे में ज़्यादा जानकारी के लिए, यहां जाएं: वैरिएबल निकालें नीति पढ़ें. डाउनलोड किए गए सैंपल में, आपको यह एक्सएमएल फ़ाइल में मिल सकती है doc-samples/policy-mashup-cookbook/apiproxy/policies/ParseGeocodingResponse.xml.

<ExtractVariables name="ParseGeocodingResponse">
  <Source>GeocodingResponse</Source>
  <VariablePrefix>geocoderesponse</VariablePrefix>
  <JSONPayload>
    <Variable name="latitude">
       <JSONPath>$.results[0].geometry.location.lat</JSONPath>
    </Variable>
    <Variable name="longitude">
       <JSONPath>$.results[0].geometry.location.lng</JSONPath>
    </Variable>
  </JSONPayload>
</ExtractVariables>

ExtractVariable नीति के मुख्य एलिमेंट ये हैं:

  • <ExtractVariables name> - दोबारा, नीति के नाम का इस्तेमाल इन कामों के लिए किया जाता है फ़्लो में इस्तेमाल किए जाने पर, नीति का पालन करें.
  • &lt;Source&gt; - उस रिस्पॉन्स वैरिएबल के बारे में बताता है जिसमें हमने बनाया है सेवा कॉलआउट की नीति देखें. यह वह वैरिएबल है जिससे यह नीति डेटा इकट्ठा करती है.
  • &lt;VariablePrefix&gt; - वैरिएबल प्रीफ़िक्स अन्य वैरिएबल की जानकारी भी शामिल की गई है. रिज़र्व किए गए नामों को छोड़कर, प्रीफ़िक्स कोई भी नाम हो सकता है Edge's की ओर से तय किए गए नाम पहले से तय वैरिएबल में बदल सकते हैं.
  • &lt;JSONPayload&gt; - यह एलिमेंट रिस्पॉन्स डेटा को फिर से हासिल करता है दिलचस्पी रखता है और उसे नाम वाले वैरिएबल में डाल देता है. वहीं, Geocoding API से आपको अक्षांश और देशांतर से ज़्यादा जानकारी होनी चाहिए. हालांकि, हमें सिर्फ़ इन वैल्यू की ज़रूरत होती है इस सैंपल के लिए. आप Geocoding API से मिले JSON की पूरी रेंडरिंग देख सकते हैं API की दस्तावेज़ में दिया गया है. ज्यामिति.location.lat औरज्यामिति.location.lng की वैल्यू सिर्फ़ JSON ऑब्जेक्ट में दिए गए कई फ़ील्ड में से दो.

शायद यह देखने लायक न हो, लेकिन यह ध्यान रखना ज़रूरी है कि ExtractVariables से दो वैरिएबल जिनके नाम में वैरिएबल प्रीफ़िक्स (जियोकोड रिस्पॉन्स) और असली दिए गए वैरिएबल नामों का इस्तेमाल करें. ये वैरिएबल यहां सेव किए जाते हैं: एपीआई प्रॉक्सी के साथ काम करता है. यह प्रॉक्सी फ़्लो के तहत आने वाली अन्य नीतियों के लिए उपलब्ध होगा देखें. इसमें ये वैरिएबल दिखेंगे:

  • geocoderesponse.latitude
  • geocoderesponse.longitude

ज़्यादातर काम अब पूरा हो गया है. हमने तीन नीतियों को मिलाकर एक कॉम्बिनेशन तैयार किया है. अनुरोध करें, बैकएंड एपीआई को कॉल करें, और दिए गए JSON डेटा को पार्स करें. आखिरी चरणों में, हम फ़्लो के इस हिस्से से किसी अन्य साइट के एपीआई (Google Eevation API) को डाउनलोड कर सकते हैं और हमारा मैश किया गया डेटा ऐप्लिकेशन डेवलपर को लौटा सकते हैं.

दूसरा जनरेट करें PendingMessage के साथ अनुरोध करें

नीचे दी गईassignMessage नीति, पहले बैकएंड से दिखाए गए वैरिएबल का इस्तेमाल करती है (Google और उन्हें ऐसे अनुरोध में प्लग इन करता है जो दूसरे एपीआई (Google ऊंचाई). जैसा कि पहले बताया गया है, ये वैरिएबल जियो-response.latitude और geocoderesponse.longitude.

डाउनलोड किए गए सैंपल में, आपको यह एक्सएमएल फ़ाइल में मिल सकती है doc-samples/policy-mashup-cookbook/apiproxy/policies/AssignElevationParameters.xml.

<AssignMessage name="AssignElevationParameters">
<Remove>
    <QueryParams>
      <QueryParam name="country"/>
      <QueryParam name="postalcode"/>
    </QueryParams>
  </Remove>
  <Set>
    <QueryParams>
      <QueryParam name="locations">{geocoderesponse.latitude},{geocoderesponse.longitude}</QueryParam>
      <QueryParam name="sensor">false</QueryParam>
    </QueryParams>
  </Set>
</AssignMessage>

Google एलिवेशन एपीआई को पढ़ने पर, आपको दिखेगा कि इसके लिए दो क्वेरी पैरामीटर की ज़रूरत होती है. पहली सूची को locations कहा जाता है और इसकी वैल्यू अक्षांश और देशांतर होती है (कॉमा लगाकर अलग की गई वैल्यू). अन्य पैरामीटर sensor है, जो ज़रूरी है और यह ज़रूर होना चाहिए सही या गलत हो. इस समय ध्यान देने वाली सबसे अहम बात यह है कि अनुरोध जो मैसेज हम यहां बनाते हैं उसके लिए सेवाकॉलआउट की ज़रूरत नहीं होती. हमें दूसरे नंबर पर कॉल करने की ज़रूरत नहीं है हम इस समय सेवाकॉलआउट से एपीआई का इस्तेमाल कर सकते हैं, क्योंकि हम बैकएंड एपीआई को प्रॉक्सी TargetEndpoint. अगर आप इसके बारे में सोचें, तो हमारे पास Google E तोवेशन को कॉल करने के लिए पूरा डेटा मौजूद है एपीआई इस चरण में जनरेट किए गए अनुरोध मैसेज के लिए सेवाकॉलआउट की ज़रूरत नहीं होती, क्योंकि अनुरोध मुख्य अनुरोध पाइपलाइन के लिए जनरेट किया जाता है, और इसलिए इसे इस एपीआई प्रॉक्सी के लिए कॉन्फ़िगर किए गए RouteRule का पालन करते हुए, ProxyEndpoint को TargetEndpoint से जोड़ना. TargetEndpoint, रिमोट एपीआई के साथ कनेक्शन को मैनेज करता है. (याद रखें कि TargetEndpoint के लिए, एचटीटीपीConnection में एलिवेशन एपीआई की जानकारी दी गई है. एलिवेशन एपीआई दस्तावेज़. पहले से सेव किए गए QueryParams, अब country और postalcode की ज़रूरत नहीं है, इसलिए हम इन्हें हटा रहे हैं यहां.

थोड़ी देर के लिए ठहराव: फ़्लो पर वापस जाएं

इस समय, आप सोच सकते हैं कि हम दूसरी सर्विसकॉलआउट नीति क्यों नहीं बना रहे हैं. इस तारीख के बाद उसके बाद, हमने एक और मैसेज तैयार किया. वह मैसेज टारगेट ऑडियंस को कैसे भेजा जाता है, Google ऊंचाई API? जवाब <RouteRule> में दिया गया है फ़्लो का एक हिस्सा है. &lt;RouteRule&gt; बताता है कि <Request> के बाद बचे हुए अनुरोध मैसेज का क्या करना है इसका हिस्सा है प्रक्रिया पूरी हो गई है. इस <RouteRule> के ज़रिए तय किया गया TargetEndpoint को बताती है मैसेज डिलीवर करने के लिए एपीआई प्रॉक्सी http://maps.googleapis.com/maps/api/elevation/xml तक.

अगर आपने एपीआई प्रॉक्सी का सैंपल डाउनलोड किया है, तो आपको फ़ाइल में Targetप्रॉक्सी एक्सएमएल मिल सकता है doc-samples/policy-mashup-cookbook/apiproxy/targets/default.xml.

<TargetEndpoint name="default">
  <HTTPTargetConnection>
    <!-- This is where we define the target. For this sample we just use a simple URL. -->
    <URL>http://maps.googleapis.com/maps/api/elevation/xml</URL>
  </HTTPTargetConnection>
</TargetEndpoint>

अब हम सिर्फ़ Google Eivation API से मिले रिस्पॉन्स को प्रोसेस करते हैं और हम हो गया.

रिस्पॉन्स को एक्सएमएल से इसमें बदलें JSON

इस उदाहरण में, Google एलिवेशन एपीआई से मिले रिस्पॉन्स को एक्सएमएल के तौर पर दिखाया जाता है. "अतिरिक्त क्रेडिट," रिस्पॉन्स को एक्सएमएल से बदलकर JSON.

इस उदाहरण में, एक संसाधन फ़ाइल के साथ generateResponse नाम की JavaScript नीति का इस्तेमाल किया गया है जिसमें JavaScript कोड शामिल है. नीचे दिखाया गया है GenResponse नीति की परिभाषा:

<Javascript name="GenerateResponse" timeout="10000">
  <ResourceURL>jsc://GenerateResponse.js</ResourceURL>
</Javascript>

generateResponse.js संसाधन फ़ाइल में वह JavaScript शामिल होती है जिसका इस्तेमाल कन्वर्ज़न होता है. आप फ़ाइल doc-samples/policy-mashup-cookbook/apiproxy/resources/JSC/GenerateResponse.js.

Apigee, एक्सएमएल को JSON में बदलने के लिए, पहले से मौजूद नीति, XMLToJSON उपलब्ध कराता है. आप नीचे बताई गई xmltojson नीति का इस्तेमाल करने के लिए, ProxyEndpoint में बदलाव करें आज़माएं.

<XMLToJSON name="xmltojson">
  <Options>
  </Options>
  <OutputVariable>response</OutputVariable>
  <Source>response</Source>
</XMLToJSON>
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

उदाहरण की जांच करना

अगर आपने अभी तक ऐसा नहीं किया है, तो Google Trends को डाउनलोड करने, डिप्लॉय करने, और इस्तेमाल करने की कोशिश करें policy-mashup-cookbook का नमूना, Apigee Edge के सैंपल रिपॉज़िटरी GitHub में मौजूद doc-सैंपल फ़ोल्डर में देखा जा सकता है. बस Policy-mashup-cookbook फ़ोल्डर में README फ़ाइल में दिए गए निर्देशों का पालन करें. या यहाँ दिए गए संक्षिप्त निर्देशों का पालन करें: एपीआई प्रॉक्सी का नमूना.

खास जानकारी देने के लिए, कंपोज़िट एपीआई को इस तरह कॉल किया जा सकता है. {myorg} को अपने संगठन का नाम:

$ curl "http://{myorg}-test.apigee.net/policy-mashup-cookbook?country=us&postalcode=08008"

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

{  
   "country":"us",
   "postalcode":"08008",
   "elevation":{  
      "meters":0.5045232,
      "feet":1.6552599030345978
   },
   "location":{  
      "latitude":39.75007129999999,
      "longitude":-74.1357407
   }
}

खास जानकारी

कुकबुक के इस विषय में, मैशअप बनाने के लिए नीति के कंपोज़िशन पैटर्न का इस्तेमाल करने का तरीका बताया गया है की मदद से इकट्ठा किया जाता है. एपीआई में इस्तेमाल किया जाने वाला आम पैटर्न, नीति कंपोज़िशन है आपके एपीआई में क्रिएटिव फ़ंक्शन जोड़ने के लिए प्रॉक्सी डेवलपमेंट.