आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
अगर आप पहली बार Java कॉलआउट आज़मा रहे हैं, तो हमारी सलाह है कि आप Java कॉलआउट.
कुकबुक के इस सैंपल में, Javaकॉलआउट नीति बनाने का तरीका बताया गया है. यह नीति लागू होने पर, प्रॉक्सी फ़्लो के संदर्भ में कस्टम Java कोड.
सैंपल कोड क्या करता है?
इस सैंपल में मौजूद एपीआई प्रॉक्सी, ऐसी टारगेट सेवा को कॉल करता है जो JSON का सामान्य रिस्पॉन्स देती है. कॉन्टेंट बनाने Java कॉलआउट नीति को टारगेट रिस्पॉन्स फ़्लो पर रखा जाता है. Java कोड, हेडर को कन्वर्ट करता है और अंग्रेज़ी के बड़े अक्षरों के जवाब का कॉन्टेंट. यह आसान उदाहरण है; हालांकि, इसमें दिखाया गया है कि का इस्तेमाल करें.
सैंपल आज़माएं
प्रोजेक्ट डाउनलोड करें
चीज़ों को आसान बनाने के लिए, इस प्रोजेक्ट को Apigee api-platform-samples रिपॉज़िटरी से डाउनलोड किया जा सकता है GitHub.
- अपने सिस्टम में api-platform-samples डाउनलोड करें या उन्हें क्लोन करें.
- अपनी पसंद के टर्मिनल या कोड एडिटर में,
api-platform-samples/doc-samples/java-cookbook
प्रोजेक्ट.
Maven की मदद से अपना कोड कंपाइल करना
प्रोजेक्ट को सेट अप किया गया है, ताकि उसे Maven के साथ कंपाइल किया जा सके. अगर आपको डिजिटल विज्ञापन दिखाने
javac
, हम Maven के उदाहरण के साथ एक उदाहरण शामिल करेंगे.
- पक्का करें कि आपने Maven इंस्टॉल किया हो:
mvn -version
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है java-cookbook/buildsetup.sh
स्क्रिप्ट चलाएं. यह स्क्रिप्ट आपके लोकल Maven रिपो में ज़रूरी JAR डिपेंडेंसी.- cd को
java-cookbool/callout
डायरेक्ट्री में जोड़ें. - Maven लागू करें:
mvn clean package
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है - अगर आप चाहें, तो पुष्टि करें कि JAR फ़ाइल
edge-custom-policy-java-cookbook.jar
java-cookbook/apiproxy/resources/java
में कॉपी किया गया. इसके लिए यह ज़रूरी जगह है JAR फ़ाइलें, जिन्हें आपको प्रॉक्सी के साथ डिप्लॉय करना है.
javac के साथ कंपाइल करें
अगर आपको कोड को कंपाइल करने के लिए javac
का इस्तेमाल करना है, तो ऐसा ही कुछ करें
(java-cookbook
डायरेक्ट्री से) फ़ॉलो किया जा रहा है. ज़रूरी JAR फ़ाइलें दी गई हैं
आपके लिए java-cookbook/lib
डायरेक्ट्री में.
- cd से
api-platform-samples/doc-samples/java-cookbook
करने के लिए. - पक्का करें कि आपके पाथ में javac हो.
javac -version
- यह javac निर्देश चलाएं:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया हैjavac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/ResponseUppercase.java
- JAR फ़ाइल को apiप्रॉक्सी/resources/java डायरेक्ट्री में कॉपी करें. यह ज़रूरी जगह है
जिन्हें आप प्रॉक्सी के साथ डिप्लॉय करना चाहते हैं.
cp com/apigeesample/ResponseUppercase.class apiproxy/resources/java
प्रॉक्सी को डिप्लॉय करें और उसे कॉल करें
./java-cookbook
डायरेक्ट्री में डिप्लॉय स्क्रिप्ट दी गई है. हालाँकि, दौड़ने से पहले
तो आपको एक क्विक सेटअप करना होगा.
- cd से
api-platform-samples/doc-samples/java-cookbook
- अगर आपने पहले से ऐसा नहीं किया है, तो
../../setup/setenv.sh
फ़ाइल खोलें और बदलाव करें जैसा कि आपके Apigee खाते की जानकारी में बताया गया है: आपका उपयोगकर्ता नाम (ईमेल पता आपके खाते से जुड़ा हो सकता है), आपके संगठन का नाम, और वह डोमेन जिसका इस्तेमाल एपीआई बनाने के लिए किया जाता है कॉल को मैनेज करने के लिए किया जा सकता है. उदाहरण के लिए, Edge क्लाउड के लिए, डोमेनhttps://api.enterprise.apigee.com
; हालाँकि, डोमेन अलग हो सकता है अगर आप Edge Private Cloud का इस्तेमाल करें. setenv.sh
फ़ाइल सेव करें.- डिप्लॉय स्क्रिप्ट चलाएं:
./deploy.sh
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है - डिप्लॉयमेंट पूरा होने पर, शुरू करने की स्क्रिप्ट लागू करें:
./invoke.sh
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया हैशुरू करने वाली स्क्रिप्ट एक cURL निर्देश को कॉल करती है, जो ऐसा दिखता है:
curl http://$org-$env.$api_domain/java-cookbook/json
जवाब कुछ ऐसा दिखता है:
< HTTP/1.1 200 OK < Date: Tue, 09 May 2017 20:31:08 GMT < Content-Type: APPLICATION/JSON; CHARSET=UTF-8 < Content-Length: 68 < Connection: keep-alive < Access-Control-Allow-Origin: * < ETag: W/"44-RA5ERT/MMLIK54NVBWBSZG" < X-Powered-By: APIGEE < Server: Apigee Router < * Curl_http_done: called premature == 0 * Connection #0 to host willwitman-test.apigee.net left intact {"FIRSTNAME":"JOHN","LASTNAME":"DOE","CITY":"SAN JOSE","STATE":"CA"}
प्रॉक्सी फ़्लो
यह ट्रेस करने वाले टूल का एक शॉट है, जो प्रॉक्सी का फ़्लो दिखाता है:
प्रॉक्सी स्ट्रक्चर
यह प्रॉक्सी का स्ट्रक्चर है. ध्यान दें कि इसमें एक JAR फ़ाइल शामिल होती है, जो
apiproxy/resources/java
डायरेक्ट्री. JAR डालना ज़रूरी है. हम इसे
नमूना, लेकिन अगर आप कस्टम काम कर रहे हैं, तो आपको इसे खुद बनाना होगा और
स्थान. Java कॉलआउट को कंपाइल और डिप्लॉय करने के बारे में दिशा-निर्देश पाने के लिए, Java फ़ॉर्मैट बनाने का तरीका देखें
कॉलआउट.
java-cookbook apiproxy java-cookbook.xml policies responseUppercase.xml proxies default.xml resources java ResponseUppercase.jar targets default.xml
Java कोड के बारे में जानकारी
Java कॉलआउट नीति नीचे दिए गए Java कोड को चलाती है, जो रिस्पॉन्स हेडर को कन्वर्ट करता है और जवाब के मुख्य हिस्से को अंग्रेज़ी के बड़े अक्षरों में बदलें. ध्यान दें कि यह प्रोग्राम, Apigee के खास पैकेज का इस्तेमाल करता है. ये पैकेज ऐसे ऑब्जेक्ट और तरीके उपलब्ध कराएं जिनका इस्तेमाल करके, सीधे प्रॉक्सी फ़्लो के साथ इंटरैक्ट किया जा सके. तरीके हैं, जो आपको फ़्लो वैरिएबल, हेडर, मैसेज कॉन्टेंट वगैरह पाने और सेट करने देते हैं.
package com.apigeesample; import com.apigee.flow.execution.ExecutionContext; import com.apigee.flow.execution.ExecutionResult; import com.apigee.flow.execution.spi.Execution; import com.apigee.flow.message.MessageContext; import java.util.Set; public class ResponseUppercase implements Execution{ public ExecutionResult execute(MessageContext messageContext, ExecutionContext executionContext) { try { Set headers = messageContext.getMessage().getHeaderNames(); for (String header : headers) { String h = messageContext.getMessage().getHeader(header).toUpperCase(); messageContext.getMessage().setHeader(header, h); } String content = messageContext.getMessage().getContent(); messageContext.getMessage().setContent(content.toUpperCase()); return ExecutionResult.SUCCESS; } catch (Exception e) { return ExecutionResult.ABORT; } } }
सैंपल प्रॉक्सी की जाँच करें
प्रॉक्सी को खोलने और फ़ाइलों की जांच करने के लिए, हम इसे आप पर छोड़ देते हैं. यह Java की कॉलआउट नीति है. ध्यान दें कि यह कॉलआउट में एक्ज़ीक्यूट होने वाली क्लास और JAR फ़ाइल का रेफ़रंस कैसे देता है. सभी Java कॉलआउट नीतियां इस पैटर्न को फ़ॉलो करती हैं. Java कॉलआउट नीति भी देखें.
<JavaCallout name="responseUppercase"> <ClassName>com.apigeesample.ResponseUppercase</ClassName> <ResourceURL>java://ResponseUppercase.jar</ResourceURL> </JavaCallout>