एपीआई का इस्तेमाल करके एपीआई प्रॉक्सी डिप्लॉय करना

यहां Apigee Edge के दस्तावेज़ देखे जा रहे हैं.
पर जाएं Apigee X दस्तावेज़.
info

हर संगठन का सॉफ़्टवेयर डेवलपमेंट लाइफ़साइकल (एसडीएलसी) अलग होता है. अक्सर, बैकएंड सेवाओं के लिए इस्तेमाल की जाने वाली प्रोसेस के साथ, एपीआई प्रॉक्सी डिप्लॉयमेंट को सिंक और अलाइन करना ज़रूरी होता है.

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

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

ज़्यादा जानकारी के लिए, Edge API देखें.

Edge API का इस्तेमाल करने के लिए, आपको अपने कॉल में पुष्टि करनी होगी. इसके लिए, इनमें से कोई एक तरीका इस्तेमाल किया जा सकता है:

  • OAuth2 (सिर्फ़ पब्लिक क्लाउड)
  • SAML (पब्लिक और प्राइवेट क्लाउड)
  • बेसिक ऑथ (सुझाया नहीं जाता; पब्लिक और प्राइवेट क्लाउड)

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

वीडियो: एपीआई डिप्लॉय करने का तरीका जानने के लिए, यह शॉर्ट वीडियो देखें.

एपीआई के साथ इंटरैक्ट करना

यहां दिए गए चरणों में, एपीआई के साथ इंटरैक्ट करने का आसान तरीका बताया गया है.

अपने संगठन में मौजूद एपीआई की सूची देखना

अपने संगठन में मौजूद सभी एपीआई प्रॉक्सी की सूची देखकर शुरुआत की जा सकती है. (एंट्री बदलना न भूलें EMAIL:PASSWORD और ORG_NAME के लिए. निर्देशों के लिए, Edge API का इस्तेमाल करना लेख पढ़ें.

curl -u EMAIL:PASSWORD \
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis

रिस्पॉन्स का उदाहरण:

[ "weatherapi" ]

कोई एपीआई पाना

अपने संगठन में मौजूद किसी भी एपीआई प्रॉक्सी पर, GET तरीका कॉल किया जा सकता है. इस कॉल से, एपीआई प्रॉक्सी के सभी उपलब्ध वर्शन की सूची मिलती है.

curl -u EMAIL:PASSWORD -H "Accept: application/json" \
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis/weatherapi

रिस्पॉन्स का उदाहरण:

{
  "name" : "weatherapi",
  "revision" : [ "1" ]
}

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

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

एपीआई वर्शन पाना

एपीआई का वर्शन (उदाहरण के लिए, api.company.com/v1) बहुत कम बार बदलना चाहिए. एपीआई वर्शन बढ़ाने पर, डेवलपर को यह पता चलता है कि एपीआई के सार्वजनिक इंटरफ़ेस के सिग्नेचर में कोई अहम बदलाव हुआ है.

एपीआई प्रॉक्सी का वर्शन, एपीआई प्रॉक्सी कॉन्फ़िगरेशन से जुड़ा एक बढ़ता हुआ नंबर है. एपीआई सेवाएं, आपके कॉन्फ़िगरेशन के वर्शन बनाए रखती हैं, ताकि गड़बड़ी होने पर, कॉन्फ़िगरेशन को वापस लाया जा सके. डिफ़ॉल्ट रूप से, 'एपीआई प्रॉक्सी इंपोर्ट करें' एपीआई का इस्तेमाल करके, एपीआई प्रॉक्सी इंपोर्ट करने पर, एपीआई प्रॉक्सी का वर्शन अपने-आप बढ़ जाता है. अगर आपको एपीआई प्रॉक्सी का वर्शन नहीं बढ़ाना है, तो Update एपीआई प्रॉक्सी का वर्शन अपडेट करें एपीआई का इस्तेमाल करें. अगर डिप्लॉय करने के लिए Maven का इस्तेमाल किया जा रहा है, तो clean या update विकल्पों का इस्तेमाल करें, जैसा कि Maven प्लग इन readme में बताया गया है.

उदाहरण के लिए, पूरी जानकारी पाने के लिए, एपीआई प्रॉक्सी वर्शन 1 पर GET तरीका कॉल किया जा सकता है.

curl -u EMAIL:PASSWORD -H "Accept:application/json" \
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis/weatherapi/revisions/1

रिस्पॉन्स का उदाहरण

{
  "configurationVersion" : {
    "majorVersion" : 4,
    "minorVersion" : 0
  },
  "contextInfo" : "Revision 1 of application weatherapi, in organization {org_name}",
  "createdAt" : 1343178905169,
  "createdBy" : "andrew@apigee.com",
  "lastModifiedAt" : 1343178905169,
  "lastModifiedBy" : "andrew@apigee.com",
  "name" : "weatherapi",
  "policies" : [ ],
  "proxyEndpoints" : [ ],
  "resources" : [ ],
  "revision" : "1",
  "targetEndpoints" : [ ],
  "targetServers" : [ ],
  "type" : "Application"
}

एपीआई प्रॉक्सी कॉन्फ़िगरेशन के इन एलिमेंट के बारे में, एपीआई प्रॉक्सी कॉन्फ़िगरेशन के रेफ़रंस में पूरी जानकारी दी गई है.

किसी एनवायरमेंट में एपीआई डिप्लॉय करना

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

किसी एनवायरमेंट में डिप्लॉय किए बिना, एपीआई प्रॉक्सी को कॉल नहीं किया जा सकता. प्रॉड में एपीआई प्रॉक्सी का वर्शन डिप्लॉय करने के बाद, बाहरी डेवलपर के लिए prod यूआरएल पब्लिश किया जा सकता है.

एनवायरमेंट की सूची देखने का तरीका

Apigee Edge के हर संगठन में कम से कम दो एनवायरमेंट होते हैं: test और prod. इनके बीच का अंतर मनमाना है. इसका लक्ष्य यह है कि बाहरी डेवलपर के लिए एपीआई प्रॉक्सी को उपलब्ध कराने से पहले, यह पुष्टि की जा सके कि वह सही तरीके से काम कर रही है.

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

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

किसी संगठन में मौजूद एनवायरमेंट देखना

curl -u EMAIL:PASSWORD \
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments

रिस्पॉन्स का उदाहरण

[ "test", "prod" ]

डिप्लॉयमेंट के बारे में ज़्यादा जानना

डिप्लॉयमेंट, एपीआई प्रॉक्सी का वह वर्शन है जिसे किसी एनवायरमेंट में डिप्लॉय किया गया है. An API प्रॉक्सी जो डिप्लॉय स्थिति में है, नेटवर्क पर ऐक्सेस की जा सकती है. इसके लिए, उस एनवायरमेंट के <VirtualHost> एलिमेंट में तय किए गए पतों का इस्तेमाल किया जाता है.

एपीआई प्रॉक्सी डिप्लॉय करना

डिप्लॉय किए बिना, एपीआई प्रॉक्सी को कॉल नहीं किया जा सकता. एपीआई सेवाएं, RESTful एपीआई उपलब्ध कराती हैं. इनसे डिप्लॉयमेंट की प्रोसेस को कंट्रोल किया जा सकता है.

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

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

सबसे पहले, मौजूदा वर्शन को अनडिप्लॉय करें. उस एपीआई प्रॉक्सी का एनवायरमेंट नाम और वर्शन नंबर तय करें जिसे अनडिप्लॉय करना है:

curl -X DELETE \
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments/ENV_NAME/apis/API_NAME/revisions/REVISION_NUMBER/deployments \
  -u EMAIL:PASSWORD

इसके बाद, नया वर्शन डिप्लॉय करें. एपीआई प्रॉक्सी का नया वर्शन पहले से मौजूद होना चाहिए:

curl -X POST -H "Content-type:application/x-www-form-urlencoded" \
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments/ENV_NAME/apis/API_NAME/revisions/REVISION_NUMBER/deployments \
  -u EMAIL:PASSWORD

अनडिप्लॉयमेंट के दौरान, किसी तरह की रुकावट न आने देने वाला डिप्लॉयमेंट (ज़ीरो डाउनटाइम)

डिप्लॉयमेंट के दौरान, डाउनटाइम की संभावना को कम करने के लिए, डिप्लॉयमेंट के तरीके पर override पैरामीटर का इस्तेमाल करें और इसे true पर सेट करें.

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

यहां दिए गए उदाहरण में, override की वैल्यू को फ़ॉर्म पैरामीटर के तौर पर पास करके सेट किया गया है:

curl -X POST -H "Content-type:application/x-www-form-urlencoded" \
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/e/ENV_NAME/apis/API_NAME/revisions/REVISION_NUMBER/deployments" \
  -d "override=true" \
  -u EMAIL:PASSWORD

delay पैरामीटर सेट करके, डिप्लॉयमेंट को और ऑप्टिमाइज़ किया जा सकता है. delay पैरामीटर, सेकंड में, वह समयांतराल तय करता है जिसके बाद पिछले वर्शन को अनडिप्लॉय किया जाना चाहिए. इसका मतलब है कि इन-फ़्लाइट लेन-देन के लिए एक समयांतराल होता है. इस दौरान, लेन-देन को पूरा किया जा सकता है. इसके बाद, लेन-देन को प्रोसेस करने वाली एपीआई प्रॉक्सी को अनडिप्लॉय कर दिया जाता है. override=true और delay पैरामीटर सेट करने पर, यह होता है:

  • वर्शन 1, अनुरोधों को हैंडल कर रहा है.
  • वर्शन 2 को साथ-साथ डिप्लॉय किया जा रहा है.
  • वर्शन 2 पूरी तरह से डिप्लॉय होने के बाद, नया ट्रैफ़िक वर्शन 2 को भेजा जाता है. वर्शन 1 को कोई नया ट्रैफ़िक नहीं भेजा जाता.
  • हालांकि, वर्शन 1, मौजूदा लेन-देन को अब भी प्रोसेस कर सकता है. delay पैरामीटर (उदाहरण के लिए, 15 सेकंड) सेट करके, वर्शन 1 को मौजूदा लेन-देन को प्रोसेस करने के लिए 15 सेकंड मिलते हैं.
  • डिले इंटरवल के बाद, वर्शन 1 को अनडिप्लॉय कर दिया जाता है.
curl -X POST -H "Content-type:application/x-www-form-urlencoded" \
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/e/ENV_NAME/apis/API_NAME/revisions/REVISION_NUMBER/deployments?delay=15" \
  -d "override=true" \
  -u EMAIL:PASSWORD
क्वेरी पैरामीटर ब्यौरा
override

डिफ़ॉल्ट वैल्यू false है (सामान्य डिप्लॉयमेंट का तरीका: मौजूदा वर्शन को अनडिप्लॉय किया जाता है, इसके बाद, नया वर्शन डिप्लॉय किया जाता है).

सामान्य डिप्लॉयमेंट के तरीके को ओवरराइड करने और अनडिप्लॉयमेंट के दौरान, किसी तरह की रुकावट न आने देने वाला डिप्लॉयमेंट करने के लिए, इसे true पर सेट करें. नया वर्शन डिप्लॉय होने के दौरान, मौजूदा वर्शन डिप्लॉय रहता है. नया वर्शन डिप्लॉय होने के बाद, पुराना वर्शन अनडिप्लॉय हो जाता है. अनडिप्लॉयमेंट कब होगा, यह कंट्रोल करने के लिए, delay पैरामीटर के साथ इसका इस्तेमाल करें.

delay

मौजूदा वर्शन को अनडिप्लॉय करने से पहले, लेन-देन की प्रोसेसिंग पूरी करने की अनुमति देने के लिए—और 502 Bad Gateway या 504 Gateway Timeout errors की संभावना को खत्म करने के लिए—इस पैरामीटर को सेकंड की उस संख्या पर सेट करें जिसके लिए अनडिप्लॉयमेंट को डिले करना है. सेकंड की संख्या सेट करने की कोई सीमा नहीं है. साथ ही, ज़्यादा सेकंड सेट करने पर, परफ़ॉर्मेंस पर कोई असर नहीं पड़ता. डिले के दौरान, पुराने वर्शन को कोई नया ट्रैफ़िक नहीं भेजा जाता.

डिफ़ॉल्ट वैल्यू 0 (शून्य) सेकंड है. जब override को true पर सेट किया जाता है और delay को 0 पर सेट किया जाता है, तो नया वर्शन डिप्लॉय होने के तुरंत बाद, मौजूदा वर्शन अनडिप्लॉय हो जाता है. नेगेटिव वैल्यू को 0 (शून्य) सेकंड माना जाता है.

delay के साथ override=true का इस्तेमाल करने पर, डिप्लॉयमेंट के दौरान, एचटीटीपी 5XX रिस्पॉन्स को खत्म किया जा सकता है. ऐसा इसलिए है, क्योंकि एपीआई प्रॉक्सी के दोनों वर्शन एक साथ डिप्लॉय किए जाएंगे. साथ ही, डिले के बाद, पुराना वर्शन अनडिप्लॉय हो जाएगा.

किसी एपीआई वर्शन के सभी डिप्लॉयमेंट देखना

कभी-कभी, एपीआई प्रॉक्सी के फ़िलहाल डिप्लॉय किए गए सभी वर्शन की सूची फ़ेच करना ज़रूरी होता है.

curl https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis/weatherapi/revisions/1/deployments \
  -u EMAIL:PASSWORD
{
  "aPIProxy" : "weatherapi",
  "environment" : [ {
    "configuration" : {
      "basePath" : "",
      "steps" : [ ]
    },
    "name" : "test",
    "server" : [ {
      "status" : "deployed",
      "type" : [ "message-processor" ],
      "uUID" : "90096dd1-1019-406b-9f42-fbb80cd01200"
    }, {
      "status" : "deployed",
      "type" : [ "message-processor" ],
      "uUID" : "7d6e2eb1-581a-4db0-8045-20d9c3306549"
    }, {
      "status" : "deployed",
      "type" : [ "router" ],
      "uUID" : "1619e2d7-c822-45e0-9f97-63882fb6a805"
    }, {
      "status" : "deployed",
      "type" : [ "router" ],
      "uUID" : "8a5f3d5f-46f8-4e99-b4cc-955875c8a8c8"
    } ],
    "state" : "deployed"
  } ],
  "name" : "1",
  "organization" : "org_name"
}

ऊपर दिए गए रिस्पॉन्स में, Apigee Edge के इंटरनल इन्फ़्रास्ट्रक्चर से जुड़ी कई प्रॉपर्टी शामिल हैं. अगर Apigee Edge को ऑन-प्रिमाइसेस इस्तेमाल नहीं किया जा रहा है, तो इन सेटिंग को बदला नहीं जा सकता.

रिस्पॉन्स में शामिल अहम प्रॉपर्टी, organization, environment, aPIProxy, name, और state हैं. इन प्रॉपर्टी की वैल्यू की समीक्षा करके, यह पुष्टि की जा सकती है कि एपीआई प्रॉक्सी का कोई खास वर्शन, किसी एनवायरमेंट में डिप्लॉय किया गया है.

टेस्ट एनवायरमेंट में मौजूद सभी डिप्लॉयमेंट देखना

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

curl -u EMAIL:PASSWORD
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments/test/deployments

इससे, टेस्ट एनवायरमेंट में डिप्लॉय किए गए हर एपीआई के लिए, ऊपर दिया गया नतीजा मिलता है

अपने संगठन में मौजूद सभी डिप्लॉयमेंट देखना

सभी एनवायरमेंट में मौजूद सभी एपीआई प्रॉक्सी के फ़िलहाल डिप्लॉय किए गए सभी वर्शन की सूची फ़ेच करने के लिए, एपीआई का यह तरीका इस्तेमाल करें:

curl https://api.enterprise.apigee.com/v1/o/ORG_NAME/deployments \
  -u EMAIL:PASSWORD

इससे, सभी एनवायरमेंट में डिप्लॉय की गई सभी एपीआई प्रॉक्सी के लिए, ऊपर दिया गया नतीजा मिलता है.

एपीआई, RESTful है. इसलिए, एपीआई प्रॉक्सी बनाने के लिए, उसी रिसॉर्स के ख़िलाफ़ JSON या XML पेलोड के साथ, POST तरीका इस्तेमाल किया जा सकता है.

आपकी एपीआई प्रॉक्सी के लिए एक प्रोफ़ाइल जनरेट की जाती है. एपीआई प्रॉक्सी का डिफ़ॉल्ट प्रतिनिधित्व, JavaScript ऑब्जेक्ट नोटेशन (JSON) में होता है. यहां, ऊपर दिए गए POST अनुरोध का डिफ़ॉल्ट JSON रिस्पॉन्स दिया गया है, जिससे weatherapi नाम की एक एपीआई प्रॉक्सी बनाई गई है. इसके बाद, प्रोफ़ाइल में मौजूद हर एलिमेंट का ब्यौरा दिया गया है:

{
  "configurationVersion" : {
    "majorVersion" : 4,
    "minorVersion" : 0
  },
  "contextInfo" : "Revision 1 of application weatherapi, in organization {org_name}",
  "createdAt" : 1357172145444,
  "createdBy" : "you@yourcompany.com",
  "displayName" : "weatherapi",
  "lastModifiedAt" : 1357172145444,
  "lastModifiedBy" : "you@yourcompany.com",
  "name" : "weatherapi",
  "policies" : [ ],
  "proxyEndpoints" : [ ],
  "resources" : [ ],
  "revision" : "1",
  "targetEndpoints" : [ ],
  "targetServers" : [ ],
  "type" : "Application"
}

जनरेट की गई एपीआई प्रॉक्सी प्रोफ़ाइल, एपीआई प्रॉक्सी का पूरा स्ट्रक्चर दिखाती है:

  • APIProxy revision: एपीआई प्रॉक्सी कॉन्फ़िगरेशन का क्रम से नंबर दिया गया वर्शन, जिसे एपीआई सेवाएं बनाए रखती हैं
  • APIProxy name: एपीआई प्रॉक्सी का यूनीक नाम
  • ConfigurationVersion: एपीआई सेवाओं का वह वर्शन जिसके मुताबिक, एपीआई प्रॉक्सी कॉन्फ़िगरेशन काम करता है
  • CreatedAt: वह समय जब एपीआई प्रॉक्सी जनरेट की गई थी. इसे यूनिक्स टाइम में फ़ॉर्मैट किया गया है
  • CreatedBy: Apigee Edge के उस उपयोगकर्ता का ईमेल पता जिसने एपीआई प्रॉक्सी बनाई थी
  • DisplayName: एपीआई प्रॉक्सी के लिए, उपयोगकर्ता के लिए आसान नाम
  • LastModifiedAt: वह समय जब एपीआई प्रॉक्सी जनरेट की गई थी. इसे यूनिक्स टाइम में फ़ॉर्मैट किया गया है
  • LastModifiedBy: Apigee Edge के उस उपयोगकर्ता का ईमेल पता जिसने एपीआई प्रॉक्सी बनाई थी
  • Policies: इस एपीआई प्रॉक्सी में जोड़ी गई नीतियों की सूची
  • ProxyEndpoints: नाम वाले ProxyEndpoints की सूची
  • Resources: रिसॉर्स (JavaScript, Python, Java, XSLT) की सूची. इन्हें इस एपीआई प्रॉक्सी में एक्ज़ीक्यूट किया जा सकता है
  • TargetServers: नाम वाले TargetServers की सूची. इन्हें मैनेजमेंट एपीआई का इस्तेमाल करके बनाया जा सकता है. इनका इस्तेमाल, लोड बैलेंसिंग के मकसद से, बेहतर कॉन्फ़िगरेशन में किया जाता है
  • TargetEndpoints: नाम वाले TargetEndpoints की सूची

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

एपीआई प्रॉक्सी कॉन्फ़िगरेशन के रेफ़रंस में, इन कॉन्फ़िगरेशन एलिमेंट के बारे में भी पढ़ा जा सकता है.

एपीआई के लिए स्क्रिप्टिंग करना

एपीआई प्रॉक्सी के सैंपल का इस्तेमाल करना, GitHub पर उपलब्ध, Apigee के डिप्लॉय टूल को रैप करने वाली शेल स्क्रिप्ट उपलब्ध कराता है. अगर किसी वजह से Python डिप्लॉय टूल का इस्तेमाल नहीं किया जा सकता, तो एपीआई को सीधे कॉल किया जा सकता है. नीचे दी गई सैंपल स्क्रिप्ट में, दोनों तरीकों के बारे में बताया गया है.

डिप्लॉय टूल को रैप करना

सबसे पहले, पक्का करें कि Python डिप्लॉय टूल आपके स्थानीय एनवायरमेंट में उपलब्ध हो.

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

#!/bin/bash

org="Your ORG on enterprise.apigee.com"
username="Your USERNAME on enterprise.apigee.com"

# While testing, it's not necessary to change the setting below
env="test"
# Change the value below only if you have an on-premise deployment
url="https://api.enterprise.apigee.com"
# Change the value below only if you have a custom domain
api_domain="apigee.net"

export org=$org
export username=$username
export env=$env
export url=$url
export api_domain=$api_domain

ऊपर दी गई फ़ाइल, आपकी सभी सेटिंग को उन शेल स्क्रिप्ट के लिए उपलब्ध कराती है जो डिप्लॉय टूल को रैप करती हैं.

अब एक शेल स्क्रिप्ट बनाएं. यह स्क्रिप्ट, उन सेटिंग को इंपोर्ट करती है और उनका इस्तेमाल करके, डिप्लॉय टूल को कॉल करती है. (उदाहरण के लिए, Apigee API प्लैटफ़ॉर्म के सैंपल देखें.)

#!/bin/bash

source path/to/setenv.sh

echo "Enter your password for the Apigee Enterprise organization $org, followed by [ENTER]:"

read -s password

echo Deploying $proxy to $env on $url using $username and $org

path/to/deploy.py -n {api_name} -u $username:$password -o $org -h $url -e $env -p / -d path/to/apiproxy

अपनी सुविधा के लिए, एपीआई को कॉल और टेस्ट करने के लिए भी एक स्क्रिप्ट बनाएं. इसके लिए, यह तरीका अपनाएं:

#!/bin/bash

echo Using org and environment configured in /setup/setenv.sh

source /path/to/setenv.sh

set -x

curl "http://$org-$env.apigee.net/{api_basepath}"

एपीआई को सीधे कॉल करना

एपीआई प्रॉक्सी को अपलोड और डिप्लॉय करने की प्रोसेस को ऑटोमेट करने वाली आसान शेल स्क्रिप्ट लिखना काम का हो सकता है.

नीचे दी गई स्क्रिप्ट, सीधे मैनेजमेंट एपीआई को कॉल करती है. यह, अपडेट की जा रही एपीआई प्रॉक्सी के मौजूदा वर्शन को अनडिप्लॉय करती है. साथ ही, /apiproxy डायरेक्ट्री से एक ZIP फ़ाइल बनाती है. इसमें आपकी प्रॉक्सी कॉन्फ़िगरेशन फ़ाइलें होती हैं. इसके बाद, कॉन्फ़िगरेशन को अपलोड, इंपोर्ट, और डिप्लॉय करती है.

#!/bin/bash

#This sets the name of the API proxy and the basepath where the API will be available
api=api

source /path/to/setenv.sh

echo Delete the DS_store file on OSX

echo find . -name .DS_Store -print0 | xargs -0 rm -rf
find . -name .DS_Store -print0 | xargs -0 rm -rf

echo "Enter your password for the Apigee Enterprise organization $org, followed by [ENTER]:"

read -s password

echo Undeploy and delete the previous revision

# Note that you need to explicitly update the revision to be undeployed.
# One benefit of the Python deploy tool is that it manages this for you.

curl -k -u $username:$password "$url/v1/o/$org/e/$env/apis/$api/revisions/1/deployments" -X DELETE

curl -k -u $username:$password -X DELETE "$url/v1/o/$org/apis/$api/revisions/1"

rm -rf $api.zip

echo Create the API proxy bundle and deploy

zip -r $api.zip apiproxy

echo Import the new revision to $env environment 

curl -k -v -u $username:$password "$url/v1/o/$org/apis?action=import&name=$api" -T $api.zip -H "Content-Type: application/octet-stream" -X POST

echo Deploy the new revision to $env environment 

curl -k -u $username:$password "$url/v1/o/$org/e/$env/apis/$api/revisions/1/deployments" -X POST