किसी OpenAPI विवरण से एक API प्रॉक्सी बनाएं

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

आपको क्या सीखने को मिलेगा

इस ट्यूटोरियल में, आपको इनके बारे में जानकारी मिलेगी:

  • OpenAPI स्पेसिफ़िकेशन से Edge API प्रॉक्सी बनाएं.
  • cURL का इस्तेमाल करके, एपीआई प्रॉक्सी को कॉल करें.
  • शर्तों के हिसाब से काम करने वाले फ़्लो में कोई नीति जोड़ें.
  • cURL का इस्तेमाल करके, नीति लागू होने की जांच करें.

इस ट्यूटोरियल में, Apigee Edge मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके, OpenAPI स्पेसिफ़िकेशन से Edge API प्रॉक्सी बनाने का तरीका बताया गया है. जब किसी एचटीटीपी क्लाइंट, जैसे कि cURL की मदद से एपीआई प्रॉक्सी को कॉल किया जाता है, तो एपीआई प्रॉक्सी, Apigee की मॉक टारगेट सेवा को अनुरोध भेजती है.

Open API Initiative के बारे में जानकारी

Open API Initiative
"The Open API Initiative (OAI) is focused on creating, evolving and promoting a vendor neutral API Description Format based on the Swagger Specification." Open API Initiative के बारे में ज़्यादा जानकारी के लिए, https://openapis.org पर जाएं.

OpenAPI स्पेसिफ़िकेशन, RESTful API के बारे में बताने के लिए स्टैंडर्ड फ़ॉर्मैट का इस्तेमाल करता है. OpenAPI स्पेसिफ़िकेशन को JSON या YAML फ़ॉर्मैट में लिखा जाता है. इसे मशीन आसानी से पढ़ सकती है. साथ ही, इसे इंसानों के लिए पढ़ना और समझना भी आसान होता है. स्पेसिफ़िकेशन में, एपीआई के ऐसे एलिमेंट के बारे में बताया जाता है जैसे कि इसका बेस पाथ, पाथ और वर्ब, हेडर, क्वेरी पैरामीटर, ऑपरेशन, कॉन्टेंट टाइप, जवाबों के ब्यौरे वगैरह. इसके अलावा, एपीआई से जुड़े दस्तावेज़ जनरेट करने के लिए, आम तौर पर OpenAPI स्पेसिफ़िकेशन का इस्तेमाल किया जाता है.

Apigee की मॉक टारगेट सेवा के बारे में जानकारी

इस ट्यूटोरियल में इस्तेमाल की गई Apigee की मॉक टारगेट सेवा, Apigee पर होस्ट की जाती है. यह सेवा सामान्य डेटा दिखाती है. इसके लिए, किसी एपीआई पासकोड या ऐक्सेस टोकन की ज़रूरत नहीं होती. दरअसल, इसे वेब ब्राउज़र में भी ऐक्सेस किया जा सकता है. इसे आज़माने के लिए, यहां क्लिक करें:

http://mocktarget.apigee.net

टारगेट सेवा, Hello, guest! ग्रीटिंग दिखाती है

मॉक टारगेट सेवा के साथ काम करने वाले सभी एपीआई के बारे में जानने के लिए, यहां क्लिक करें:

http://mocktarget.apigee.net/help

आपको किन चीज़ों की ज़रूरत होगी

  • Apigee Edge खाता. अगर आपके पास खाता नहीं है, तो Apigee Edge खाता बनाने के निर्देशों का पालन करके साइन अप किया जा सकता है.
  • OpenAPI स्पेसिफ़िकेशन. इस ट्यूटोरियल में, mocktarget.yaml OpenAPI स्पेसिफ़िकेशन का इस्तेमाल किया जाएगा. इसमें Apigee की मॉक टारगेट सेवा, http://mocktarget.apigee.net के बारे में बताया गया है. ज़्यादा जानकारी के लिए, https://github.com/apigee/api-platform-samples/tree/master/default-proxies/helloworld/openapi देखें.
  • एपीआई कॉल करने के लिए, आपकी मशीन पर cURL इंस्टॉल होना चाहिए. इससे कमांड लाइन से एपीआई कॉल किए जा सकते हैं. इसके अलावा, वेब ब्राउज़र का इस्तेमाल भी किया जा सकता है.

एपीआई प्रॉक्सी बनाना

Edge

Edge यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके, OpenAPI स्पेसिफ़िकेशन से एपीआई प्रॉक्सी बनाने के लिए:

  1. https://apigee.com/edge पर साइन इन करें.
  2. मुख्य विंडो में, एपीआई प्रॉक्सी पर क्लिक करें.

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

    लैंडिंग पेज पर एपीआई प्रॉक्सी पर क्लिक करें

  3. + प्रॉक्सी पर क्लिक करें.
    एपीआई प्रॉक्सी जोड़ना
  4. Create Proxy विज़र्ड में, Reverse proxy (most common) टेंप्लेट के लिए, Use OpenAPI Spec पर क्लिक करें.
    प्रॉक्सी टाइप बनाना
  5. यूआरएल से इंपोर्ट करें पर क्लिक करें और यह जानकारी डालें:
    • OpenAPI स्पेसिफ़िकेशन का यूआरएल: यूआरएल फ़ील्ड में, GitHub पर OpenAPI स्पेसिफ़िकेशन के रॉ कॉन्टेंट का पाथ:
      https://raw.githubusercontent.com/apigee/api-platform-samples/master/default-proxies/helloworld/openapi/mocktarget3.0.yaml
    • खास जानकारी का नाम: OpenAPI स्पेसिफ़िकेशन का नाम, जैसे कि मॉक टारगेट.

      इस नाम का इस्तेमाल, स्पेसिफ़िकेशन स्टोर में OpenAPI स्पेसिफ़िकेशन को सेव करने के लिए किया जाता है. अपनी खास जानकारी मैनेज करना लेख पढ़ें.

  6. इंपोर्ट करें पर क्लिक करें.

    'प्रॉक्सी बनाएं' विज़र्ड में मौजूद 'जानकारी' पेज दिखता है. इन फ़ील्ड में, OpenAPI स्पेसिफ़िकेशन में तय की गई वैल्यू पहले से भरी होती हैं. जैसा कि यहां दिखाया गया है

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

    फ़ील्ड ब्यौरा डिफ़ॉल्ट
    नाम एपीआई प्रॉक्सी का नाम. उदाहरण के लिए: Mock-Target-API. OpenAPI स्पेसिफ़िकेशन की title प्रॉपर्टी. इसमें स्पेस की जगह डैश का इस्तेमाल किया गया है
    बेस पाथ पाथ कॉम्पोनेंट, जो संगठन में इस एपीआई प्रॉक्सी की खास तौर पर पहचान करता है. इस एपीआई प्रॉक्सी का सार्वजनिक यूआरएल, आपके संगठन के नाम, उस एनवायरमेंट में डिप्लॉय की गई एपीआई प्रॉक्सी, और इस बेस पाथ से मिलकर बना होता है. उदाहरण के लिए: http://myorg-test.apigee.net/mock-target-api नाम फ़ील्ड के कॉन्टेंट को पूरी तरह से अंग्रेज़ी के छोटे अक्षरों में बदल दिया गया है
    ब्यौरा एपीआई प्रॉक्सी के बारे में जानकारी. OpenAPI स्पेसिफ़िकेशन से description प्रॉपर्टी
    टारगेट (मौजूदा एपीआई) इस एपीआई प्रॉक्सी की ओर से टारगेट यूआरएल को कॉल किया गया. ऐसे किसी भी यूआरएल का इस्तेमाल किया जा सकता है जिसे ओपन इंटरनेट पर ऐक्सेस किया जा सकता है. उदाहरण के लिए: http://mocktarget.apigee.net OpenAPI स्पेसिफ़िकेशन से servers प्रॉपर्टी

    यहां OpenAPI स्पेसिफ़िकेशन का एक अंश दिया गया है. इसमें उन प्रॉपर्टी के बारे में बताया गया है जिनका इस्तेमाल फ़ील्ड में अपने-आप जानकारी भरने के लिए किया जाता है.

    openapi: 3.0.0
    info:
      description: OpenAPI Specification for the Apigee mock target service endpoint.
      version: 1.0.0
      title: Mock Target API
    paths:
      /:
        get:
          summary: View personalized greeting
          operationId: View a personalized greeting
          description: View a personalized greeting for the specified or guest user.
          parameters:
            - name: user
              in: query
              description: Your user name.
              required: false
              schema:
                type: string
          responses:
            "200":
              description: Success
    ...
    servers:
      - url: http://mocktarget.apigee.net
      - url: https://mocktarget.apigee.net
    ...
    
  7. ब्यौरा फ़ील्ड में इस तरह बदलाव करें: API proxy for the Apigee mock target service endpoint.
  8. आगे बढ़ें पर क्लिक करें.
  9. सामान्य नीतियां पेज पर, सुरक्षा: अनुमति के तहत, पक्का करें कि पास थ्रू (अनुमति नहीं) चुना गया हो. इसके बाद, आगे बढ़ें पर क्लिक करें:

    'सामान्य नीतियां' पेज पर, 'पास थ्रू (अनुमति नहीं है)' विकल्प चुना गया हो

  10. फ़्लो पेज पर, पक्का करें कि सभी कार्रवाइयां चुनी गई हों. प्रॉक्सी फ़्लो बनाना
  11. आगे बढ़ें पर क्लिक करें.
  12. वर्चुअल होस्ट पेज पर, default और secure को चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें.
    वर्चुअल होस्ट पेज पर डिफ़ॉल्ट और सुरक्षित चुना गया हो
  13. खास जानकारी पेज पर जाकर, पक्का करें कि वैकल्पिक डिप्लॉयमेंट में टेस्ट एनवायरमेंट चुना गया हो. इसके बाद, बनाएं और डिप्लॉय करें पर क्लिक करें:

    Apigee, आपकी नई एपीआई प्रॉक्सी बनाता है और उसे आपके टेस्ट एनवायरमेंट में डिप्लॉय करता है:

  14. एपीआई प्रॉक्सी के लिए खास जानकारी वाला पेज दिखाने के लिए, प्रॉक्सी में बदलाव करें पर क्लिक करें.
    मॉक टारगेट एपीआई प्रॉक्सी की खास जानकारी

Classic Edge (Private Cloud)

Classic Edge यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके, OpenAPI स्पेसिफ़िकेशन से एपीआई प्रॉक्सी बनाने के लिए:

  1. https://apigee.com/edge पर साइन इन करें.
  2. मुख्य विंडो में, एपीआई प्रॉक्सी पर क्लिक करें.

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

  3. + प्रॉक्सी पर क्लिक करें.
    एपीआई प्रॉक्सी जोड़ना
  4. Create Proxy विज़र्ड में, Reverse proxy (most common) को चुनें. इसके बाद, Use OpenAPI पर क्लिक करें.
    प्रॉक्सी टाइप बनाना
  5. यूआरएल से इंपोर्ट करें पर क्लिक करें. इसके बाद, OpenAPI स्पेसिफ़िकेशन के लिए कोई नाम डालें. साथ ही, यूआरएल फ़ील्ड में, GitHub पर OpenAPI स्पेसिफ़िकेशन के रॉ कॉन्टेंट का पाथ डालें:

    https://raw.githubusercontent.com/apigee/api-platform-samples/master/default-proxies/helloworld/openapi/mocktarget.yaml
  6. चुनें पर क्लिक करें.
  7. आगे बढ़ें पर क्लिक करें.

    'प्रॉक्सी बनाएं' विज़र्ड में, 'ज़्यादा जानकारी' पेज दिखता है. इन फ़ील्ड में, OpenAPI स्पेसिफ़िकेशन में तय की गई वैल्यू पहले से भरी होती हैं. इसके बारे में यहां दी गई इमेज में दिखाया गया है.

    प्रॉक्सी की जानकारी तैयार करना

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

    फ़ील्ड ब्यौरा डिफ़ॉल्ट
    प्रॉक्सी का नाम एपीआई प्रॉक्सी का नाम. उदाहरण के लिए: Mock-Target-API. OpenAPI स्पेसिफ़िकेशन की title प्रॉपर्टी. इसमें स्पेस की जगह डैश का इस्तेमाल किया गया है
    प्रॉक्सी का बेस पाथ पाथ कॉम्पोनेंट, जो संगठन में इस एपीआई प्रॉक्सी की खास तौर पर पहचान करता है. इस एपीआई प्रॉक्सी का सार्वजनिक यूआरएल, आपके संगठन के नाम, उस एनवायरमेंट में डिप्लॉय की गई एपीआई प्रॉक्सी, और इस बेस पाथ से मिलकर बना होता है. उदाहरण के लिए: http://myorg-test.apigee.net/mock-target-api नाम फ़ील्ड के कॉन्टेंट को पूरी तरह से अंग्रेज़ी के छोटे अक्षरों में बदल दिया गया है
    मौजूदा एपीआई इस एपीआई प्रॉक्सी की ओर से टारगेट यूआरएल को कॉल किया गया. ऐसे किसी भी यूआरएल का इस्तेमाल किया जा सकता है जिसे ओपन इंटरनेट पर ऐक्सेस किया जा सकता है. उदाहरण के लिए: http://mocktarget.apigee.net OpenAPI स्पेसिफ़िकेशन से servers प्रॉपर्टी
    ब्यौरा एपीआई प्रॉक्सी के बारे में जानकारी. OpenAPI स्पेसिफ़िकेशन से description प्रॉपर्टी

    यहां OpenAPI स्पेसिफ़िकेशन का एक अंश दिया गया है. इसमें उन प्रॉपर्टी के बारे में बताया गया है जिनका इस्तेमाल फ़ील्ड में अपने-आप जानकारी भरने के लिए किया जाता है.

    openapi: 3.0.0
    info:
      description: OpenAPI Specification for the Apigee mock target service endpoint.
      version: 1.0.0
      title: Mock Target API
    paths:
      /:
        get:
          summary: View personalized greeting
          operationId: View a personalized greeting
          description: View a personalized greeting for the specified or guest user.
          parameters:
            - name: user
              in: query
              description: Your user name.
              required: false
              schema:
                type: string
          responses:
            "200":
              description: Success
    ...
    servers:
      - url: http://mocktarget.apigee.net
      - url: https://mocktarget.apigee.net
    ...
    
  8. ब्यौरा फ़ील्ड में इस तरह बदलाव करें: API proxy for the Apigee mock target service endpoint.
  9. आगे बढ़ें पर क्लिक करें.
  10. फ़्लो पेज पर, पक्का करें कि सभी कार्रवाइयां चुनी गई हों. प्रॉक्सी फ़्लो बनाना
  11. आगे बढ़ें पर क्लिक करें.
  12. सुरक्षा पेज पर, सुरक्षा के विकल्प के तौर पर पास थ्रू (कोई नहीं) को चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें.
  13. वर्चुअल होस्ट पेज पर, पक्का करें कि सभी वर्चुअल होस्ट चुने गए हों. इसके बाद, आगे बढ़ें पर क्लिक करें.
  14. बिल्ड पेज पर, पक्का करें कि टेस्ट एनवायरमेंट चुना गया हो. इसके बाद, बनाएं और डिप्लॉय करें पर क्लिक करें.
  15. खास जानकारी वाले पेज पर, आपको एक सूचना दिखेगी. इसमें बताया जाएगा कि आपकी नई एपीआई प्रॉक्सी बन गई है और उसे टेस्ट एनवायरमेंट में डिप्लॉय कर दिया गया है.
    प्रॉक्सी के बारे में खास जानकारी जनरेट करना
  16. एपीआई प्रॉक्सी के लिए खास जानकारी वाला पेज दिखाने के लिए, Mock-Target-API पर क्लिक करें.
    मॉक टारगेट एपीआई प्रॉक्सी की खास जानकारी

बधाई हो! आपने OpenAPI स्पेसिफ़िकेशन से कोई एपीआई प्रॉक्सी बनाई हो. इसके बाद, आपको यह जांच करनी होगी कि यह कैसे काम करता है.

एपीआई प्रॉक्सी की जांच करना

cURL या वेब ब्राउज़र का इस्तेमाल करके, Mock-Target-API एपीआई की जांच की जा सकती है.

टर्मिनल विंडो में, यह cURL कमांड चलाएं. यूआरएल में अपने संगठन का नाम डालें.

curl http://<org_name>-test.apigee.net/mock-target-api

जवाब

आपको यह जवाब दिखेगा:

Hello, Guest!        

बहुत खूब! आपने OpenAPI स्पेसिफ़िकेशन से एक सामान्य एपीआई प्रॉक्सी बनाई हो और उसकी जांच की हो.

XML से JSON में बदलने की नीति जोड़ना

इसके बाद, आपको View XML Response कंडिशनल फ़्लो में, XML से JSON में बदलने की नीति जोड़नी होगी. यह फ़्लो, OpenAPI स्पेसिफ़िकेशन से API प्रॉक्सी बनाते समय अपने-आप जनरेट हुआ था. यह नीति, टारगेट के एक्सएमएल रिस्पॉन्स को JSON रिस्पॉन्स में बदल देगी.

सबसे पहले, एपीआई को कॉल करें, ताकि नीति जोड़ने के बाद मिले नतीजों की तुलना की जा सके. टर्मिनल विंडो में, यह cURL कमांड चलाएं. आपने टारगेट सेवा के /xml रिसॉर्स को कॉल किया है. यह रिसॉर्स, नेटिव तौर पर एक्सएमएल का एक सामान्य ब्लॉक दिखाता है. यूआरएल में अपने संगठन का नाम डालें.

curl http://<org_name>-test.apigee.net/mock-target-api/xml

जवाब

आपको यह जवाब दिखेगा:

<root> 
  <city>San Jose</city> 
  <firstName>John</firstName> 
  <lastName>Doe</lastName> 
  <state>CA</state> 
</root>

अब हम ऐसा कुछ करेंगे जिससे एक्सएमएल रिस्पॉन्स को JSON में बदला जा सके. एपीआई प्रॉक्सी में, View XML Response conditional flow में XML to JSON नीति जोड़ें.

  1. Edge UI में, Mock-Target-API Overview पेज के सबसे ऊपर दाएं कोने में मौजूद, Develop टैब पर क्लिक करें.
    डेवलपर टैब
  2. बाईं ओर मौजूद नेविगेटर पैनल में, प्रॉक्सी एंडपॉइंट > डिफ़ॉल्ट में जाकर, View XML Response कंडीशनल फ़्लो पर क्लिक करें.
    'एक्सएमएल रिस्पॉन्स देखें' को चुनें
  3. फ़्लो के जवाब के लिए, सबसे नीचे मौजूद +चरण बटन पर क्लिक करें.
    +चरण चुनें
    'चरण जोड़ें' डायलॉग बॉक्स खुलता है. इसमें, उन सभी नीतियों की कैटगरी के हिसाब से सूची दिखती है जिन्हें जोड़ा जा सकता है.
  4. स्क्रोल करके मीडिएशन कैटगरी पर जाएं और XML से JSON चुनें.
    'चरण जोड़ें' डायलॉग बॉक्स
  5. डिसप्ले नेम और नाम के लिए डिफ़ॉल्ट वैल्यू का इस्तेमाल करें.
  6. जोड़ें पर क्लिक करें. रिस्पॉन्स पर, XML से JSON में बदलने की नीति लागू होती है.फ़्लो में XML से JSON में बदलने की नीति
  7. सेव करें पर क्लिक करें.

नीति जोड़ने के बाद, cURL का इस्तेमाल करके एपीआई को फिर से कॉल करें. ध्यान दें कि अब भी उसी /xml रिसॉर्स को कॉल किया जा रहा है. टारगेट सेवा अब भी एक्सएमएल का अपना ब्लॉक दिखाती है. हालांकि, अब एपीआई प्रॉक्सी में मौजूद नीति, जवाब को JSON में बदल देगी. इस कॉल को करें:

curl http://<org_name>-test.apigee.net/mock-target-api/xml

ध्यान दें कि एक्सएमएल रिस्पॉन्स को JSON में बदल दिया जाता है:

{"root":{"city":"San Jose","firstName":"John","lastName":"Doe","state":"CA"}}

बधाई हो! आपने किसी शर्त के साथ लागू होने वाले फ़्लो में जोड़ी गई नीति को लागू करने की जांच कर ली है.