Edge API का इस्तेमाल करके एपीआई पब्लिश करें

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

इस सेक्शन में, Edge API का इस्तेमाल करके, डेवलपर पोर्टल में पब्लिश करने के लिए एपीआई प्रॉडक्ट बनाने का तरीका बताया गया है.

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

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

एपीआई का इस्तेमाल करके एपीआई प्रॉडक्ट बनाने के लिए, /organizations/{org_name}/apiproducts पर POST अनुरोध भेजें. ज़्यादा जानकारी के लिए, एपीआई प्रॉडक्ट बनाने के लिए एपीआई का संदर्भ देखें.

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

curl -X POST https://api.enterprise.apigee.com/v1/organization/myorg/apiproducts \
-H "Content-Type:application/json" \
-d \
'{
  "approvalType": "auto",
  "displayName": "Free API Product",
  "name": "weather_free",
  "proxies": [ "weatherapi" ],
  "environments": [ "test" ]
}' \
-u email:password 

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

{
  "apiResources" : [ ],
  "approvalType" : "auto",
  "attributes" : [ ],
  "createdAt" : 1362759663145,
  "createdBy" : "developer@apigee.com",
  "displayName" : "Free API Product",
  "environments" : [ "test" ],
  "lastModifiedAt" : 1362759663145,
  "lastModifiedBy" : "developer@apigee.com",
  "name" : "weather_free",
  "proxies" : [ "weatherapi" ],
  "scopes" : [ ]
}

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

एपीआई प्रॉडक्ट के कॉन्फ़िगरेशन की सेटिंग

एपीआई प्रॉडक्ट, कॉन्फ़िगरेशन के ये विकल्प दिखाते हैं:

नाम ब्यौरा डिफ़ॉल्ट ज़रूरी है?
apiResources

यूआरआई या संसाधन पाथ की कॉमा लगाकर अलग की गई लिस्ट, जिसे एपीआई प्रॉडक्ट में 'बंडल' किया गया है.

डिफ़ॉल्ट रूप से, संसाधन पाथ को proxy.pathsuffix वैरिएबल से मैप किया जाता है. प्रॉक्सी पाथ सफ़िक्स को, ProxyEndpoint के बेस पाथ के बाद आने वाले यूआरआई फ़्रैगमेंट के तौर पर तय किया जाता है. उदाहरण के लिए, नीचे दिए गए एपीआई प्रॉडक्ट में, apiResources एलिमेंट को /forecastrss के तौर पर तय किया गया है. इस एपीआई प्रॉक्सी के लिए, बेस पाथ /weather तय किया गया है. इसका मतलब है कि इस एपीआई प्रॉडक्ट से सिर्फ़ /weather/forecastrss के अनुरोधों को अनुमति मिलती है.

कोई खास पाथ चुना जा सकता है या वाइल्डकार्ड का इस्तेमाल करके सभी सबपाथ चुने जा सकते हैं. वाइल्डकार्ड (/** और /*) इस्तेमाल किए जा सकते हैं. डबल ऐस्टरिस्क वाइल्डकार्ड से पता चलता है कि सभी सब-यूआरआई शामिल हैं. सिंगल ऐस्टरिस्क से पता चलता है कि सिर्फ़ एक लेवल नीचे के यूआरआई शामिल हैं.

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

लागू नहीं नहीं
approvalType इससे यह तय होता है कि एपीआई प्रॉडक्ट से तय किए गए एपीआई को ऐक्सेस करने के लिए, एपीआई पासकोड को कैसे मंज़ूरी दी जाती है. अगर इसे manual पर सेट किया जाता है, तो ऐप्लिकेशन के लिए जनरेट किया गया पासकोड 'पेंडिंग' स्थिति में होता है. जब तक इन पासकोड को साफ़ तौर पर मंज़ूरी नहीं मिलती, तब तक ये काम नहीं करेंगे. अगर इसे auto पर सेट किया जाता है, तो सभी पासकोड 'मंज़ूरी मिल चुकी है' स्थिति में जनरेट होते हैं और तुरंत काम करने लगते हैं. (auto आम तौर पर, मुफ़्त/ट्रायल एपीआई प्रॉडक्ट को ऐक्सेस करने की अनुमति देने के लिए इस्तेमाल किया जाता है. इनमें कोटा या क्षमताओं की सीमा तय होती है.) लागू नहीं हां
attributes

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

इस प्रॉपर्टी का इस्तेमाल करके, एपीआई प्रॉडक्ट के ऐक्सेस लेवल को सार्वजनिक, निजी या इंटरनल के तौर पर तय किया जा सकता है. उदाहरण के लिए:
"attributes": [
{
"name": "access",
"value": "public"
},
{
"name": "foo",
"value": "foo"
},
{
"name": "bar",
"value": "bar"
}
]
लागू नहीं नहीं
scopes OAuth स्कोप की कॉमा से अलग की गई सूची. इनकी पुष्टि रनटाइम पर की जाती है. (Apigee Edge पुष्टि करता है कि दिखाए गए किसी भी ऐक्सेस टोकन में मौजूद स्कोप, एपीआई प्रॉडक्ट में सेट किए गए स्कोप से मेल खाते हों.) लागू नहीं नहीं
proxies नाम वाले एपीआई प्रॉक्सी जिनसे यह एपीआई प्रॉडक्ट जुड़ा है. प्रॉक्सी तय करके, एपीआई प्रॉडक्ट में मौजूद संसाधनों को खास एपीआई प्रॉक्सी से जोड़ा जा सकता है. इससे, डेवलपर उन संसाधनों को अन्य एपीआई प्रॉक्सी के ज़रिए ऐक्सेस नहीं कर पाएंगे. लागू नहीं नहीं. अगर इसे तय नहीं किया जाता है, तो apiResources को साफ़ तौर पर तय करना होगा (apiResources के बारे में जानकारी देखें). साथ ही, AssignMessage नीति में flow.resource.name वैरिएबल सेट करना होगा.
environments नाम वाले एनवायरमेंट (उदाहरण के लिए, 'test' या 'prod") जिनसे यह एपीआई प्रॉडक्ट जुड़ा है. एक या उससे ज़्यादा एनवायरमेंट तय करके, एपीआई प्रॉडक्ट में शामिल संसाधनों को खास एनवायरमेंट से जोड़ा जा सकता है. इससे, डेवलपर उन संसाधनों को किसी दूसरे एनवायरमेंट में मौजूद एपीआई प्रॉक्सी के ज़रिए ऐक्सेस नहीं कर पाएंगे. उदाहरण के लिए, इस सेटिंग का इस्तेमाल करके, 'prod' में मौजूद एपीआई प्रॉक्सी से जुड़े संसाधनों को 'test' में डिप्लॉय किए गए एपीआई प्रॉक्सी से ऐक्सेस करने से रोका जा सकता है . लागू नहीं नहीं. अगर इसे तय नहीं किया जाता है, तो apiResources को साफ़ तौर पर तय करना होगा. साथ ही, flow.resource.name वैरिएबल को AssignMessage नीति में सेट करना होगा.
quota तय किए गए समयांतराल में, हर ऐप्लिकेशन के लिए अनुमति वाले अनुरोधों की संख्या. लागू नहीं नहीं
quotaInterval समय की उन इकाइयों की संख्या जिनके आधार पर कोटा का आकलन किया जाता है लागू नहीं नहीं
quotaTimeUnit समय की वह इकाई (मिनट, घंटा, दिन या महीना) जिसके आधार पर कोटा की गिनती की जाती है. लागू नहीं नहीं

यहां एपीआई प्रॉडक्ट बनाने का ज़्यादा जानकारी वाला उदाहरण दिया गया है.

curl -X POST  https://api.enterprise.apigee.com/v1/o/{org_name}/apiproducts \
-H "Content-Type:application/json" -d \
'{
  "apiResources": [ "/forecastrss" ],
  "approvalType": "auto", 
  "attributes":
    [ {"name": "access", "value": "public"} ],
  "description": "Free API Product",
  "displayName": "Free API Product",
  "name": "weather_free",
  "scopes": [],
  "proxies": [ "weatherapi" ],
  "environments": [ "test" ],
  "quota": "10",
  "quotaInterval": "2",
  "quotaTimeUnit": "hour" }' \
-u email:password

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

{
  "apiResources" : [ "/forecastrss" ],
  "approvalType" : "auto",
  "attributes" : [ {
    "name" : "access",
    "value" : "public"
  },
  "createdAt" : 1344454200828,
  "createdBy" : "admin@apigee.com",
  "description" : "Free API Product",
  "displayName" : "Free API Product",
  "lastModifiedAt" : 1344454200828,
  "lastModifiedBy" : "admin@apigee.com",
  "name" : "weather_free",
  "scopes" : [ ],
  "proxies": [ {'weatherapi'} ],
  "environments": [ {'test'} ],
  "quota": "10",
  "quotaInterval": "1",
  "quotaTimeUnit": "hour"}'
}

स्कोप के बारे में जानकारी

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

एपीआई प्रॉडक्ट देखना

एपीआई का इस्तेमाल करके, किसी संगठन के लिए बनाए गए एपीआई प्रॉडक्ट देखने के लिए, ये सेक्शन देखें:

यहां एपीआई का इस्तेमाल करके, एपीआई प्रॉडक्ट देखने का एक उदाहरण दिया गया है:

curl -X GET "https://ext.apiexchange.org/v1/mint/organizations/{org_name}/products?monetized=true" \
  -H "Accept:application/json" \
  -u email:password

रिस्पॉन्स कुछ इस तरह दिखना चाहिए (रिस्पॉन्स का सिर्फ़ एक हिस्सा दिखाया गया है):

{
  "product" : [ {
    "customAtt1Name" : "user",
    "customAtt2Name" : "response size",
    "customAtt3Name" : "content-length",
    "description" : "payment api product",
    "displayName" : "payment",
    "id" : "payment",
    "name" : "payment",
    "organization" : {
      ...
    },
    "pricePoints" : [ ],
    "status" : "CREATED",
    "transactionSuccessCriteria" : "status == 'SUCCESS'"
  }, {
    "customAtt1Name" : "user",
    "customAtt2Name" : "response size",
    "customAtt3Name" : "content-length",
    "description" : "messaging api product",
    "displayName" : "messaging",
    "id" : "messaging",
    "name" : "messaging",
    "organization" : ...
    },
    "pricePoints" : [ ],
    "status" : "CREATED",
    "transactionSuccessCriteria" : "status == 'SUCCESS'"
  } ],
  "totalRecords" : 2
}

एपीआई का इस्तेमाल करके डेवलपर रजिस्टर करना

सभी ऐप्लिकेशन, डेवलपर या कंपनियों के होते हैं. इसलिए, ऐप्लिकेशन बनाने के लिए, आपको पहले किसी डेवलपर या कंपनी को रजिस्टर करना होगा.

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

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

उदाहरण के लिए, यहां दिए गए अनुरोध में, ntesla@theremin.com ईमेल पते वाले डेवलपर के लिए एक प्रोफ़ाइल रजिस्टर की जाती है. साथ ही, मुद्रीकरण के एट्रिब्यूट का सबसेट तय किया जाता है. इसके लिए, डेवलपर बनाएं एपीआई का इस्तेमाल किया जाता है:

$ curl -H "Content-type:application/json" -X POST -d \
'{"email" : "ntesla@theremin.com", 
  "firstName" : "Nikola", 
  "lastName" : "Tesla", 
  "userName" : "theremin", 
  "attributes" : [ 
  { 
    "name" : "project_type", 
    "value" : "public"
  },
  {    
   "name": "MINT_BILLING_TYPE",
   "value": "POSTPAID"
  },
  {
   "name": "MINT_DEVELOPER_ADDRESS",
   "value": "{\"address1\":\"Dev One Address\",\"city\":\"Pleasanton\",\"country\":\"US\",\"isPrimary\":true,\"state\":\"CA\",\"zip\":\"94588\"}"
  },
  {
   "name": "MINT_DEVELOPER_TYPE",
   "value": "TRUSTED"
  },
  {    
   "name": "MINT_HAS_SELF_BILLING,
   "value": "FALSE"
  },
  {
   "name" : "MINT_SUPPORTED_CURRENCY",
   "value" : "usd"
  }
 ] 
}' \
https://api.enterprise.apigee.com/v1/o/{org_name}/developers \
-u email:password 

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

{
          "email" : "ntesla@theremin.com",
          "firstName" : "Nikola",
          "lastName" : "Tesla",
          "userName" : "theremin",
          "organizationName" : "{org_name}",
          "status" : "active",
          "attributes" : [ 
          {
            "name" : "project_type",
            "value" : "public"
          },
          {    
             "name": "MINT_BILLING_TYPE",
             "value": "POSTPAID"
          },
          {
             "name": "MINT_DEVELOPER_ADDRESS",
             "value": "{\"address1\":\"Dev One Address\",\"city\":\"Pleasanton\",\"country\":\"US\",\"isPrimary\":true,\"state\":\"CA\",\"zip\":\"94588\"}"
          },
          {
             "name": "MINT_DEVELOPER_TYPE",
             "value": "TRUSTED"
          },
          {    
             "name": "MINT_HAS_SELF_BILLING,
             "value": "FALSE"
          },
          {
             "name" : "MINT_SUPPORTED_CURRENCY",
             "value" : "usd"
          } 
          ],
          "createdAt" : 1343189787717,
          "createdBy" : "admin@apigee.com",
          "lastModifiedAt" : 1343189787717,
          "lastModifiedBy" : "admin@apigee.com"
        }

एपीआई का इस्तेमाल करके डेवलपर ऐप्लिकेशन रजिस्टर करना

Apigee Edge पर रजिस्टर किया गया हर ऐप्लिकेशन, किसी डेवलपर और एपीआई प्रॉडक्ट से जुड़ा होता है. किसी डेवलपर की ओर से कोई ऐप्लिकेशन रजिस्टर करने पर, Apigee Edge एक "क्रेडेंशियल" (a कंज्यूमर पासकोड और सीक्रेट का पेयर) जनरेट करता है. इससे ऐप्लिकेशन की पहचान होती है. इसके बाद, ऐप्लिकेशन को अपने से जुड़े एपीआई प्रॉडक्ट के हर अनुरोध में, इन क्रेडेंशियल को शामिल करना होता है.

यहां दिए गए अनुरोध में, डेवलपर ऐप्लिकेशन बनाने के लिए एपीआई का इस्तेमाल करके, ऊपर बनाए गए डेवलपर ntesla@theremin.com के लिए एक ऐप्लिकेशन रजिस्टर किया जाता है. ऐप्लिकेशन रजिस्टर करते समय, ऐप्लिकेशन का नाम, callbackUrl, और एक या ज़्यादा एपीआई प्रॉडक्ट की सूची तय की जाती है:
$ curl -H "Content-type:application/json" -X POST -d \
'{
  "apiProducts": [ "weather_free"], 
  "callbackUrl" : "login.weatherapp.com", 
  "keyExpiresIn" : "2630000000",
  "name" : "weatherapp"}' \
https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps \
-u email:password 

callbackUrl का इस्तेमाल, OAuth के इस्तेमाल की अनुमति के कुछ टाइप (जैसे, ऑथराइज़ेशन कोड) से, ऐप्लिकेशन से रीडायरेक्ट किए गए अनुरोधों की पुष्टि करने के लिए किया जाता है. अगर OAuth का इस्तेमाल किया जाता है, तो इस वैल्यू को, OAuth के अनुरोध करने के लिए इस्तेमाल किए गए redirect_uri की वैल्यू के बराबर सेट करना होगा.

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

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

{
  "appId": "5760d130-528f-4388-8c6f-65a6b3042bd1",
  "attributes": [
    {
      "name": "DisplayName",
      "value": "Test Key Expires"
    },
    {
      "name": "Notes",
      "value": "Just testing this attribute"
    }
  ],
  "createdAt": 1421770824390,
  "createdBy": "wwitman@apigee.com",
  "credentials": [
    {
      "apiProducts": [
        {
          "apiproduct": "ProductNoResources",
          "status": "approved"
        }
      ],
      "attributes": [],
      "consumerKey": "jcAFDcfwImkJ19A5gTsZRzfBItlqohBt",
      "consumerSecret": "AX7lGGIRJs6s8J8y",
      "expiresAt": 1424400824401,
      "issuedAt": 1421770824401,
      "scopes": [],
      "status": "approved"
    }
  ],
  "developerId": "e4Oy8ddTo3p1BFhs",
  "lastModifiedAt": 1421770824390,
  "lastModifiedBy": "wwitman@apigee.com",
  "name": "TestKeyExpires",
  "scopes": [],
  "status": "approved"
}

एपीआई का इस्तेमाल करके, ऐप्लिकेशन के लिए कंज्यूमर पासकोड मैनेज करना

ऐप्लिकेशन के लिए कंज्यूमर पासकोड (एपीआई पासकोड) पाना

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

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

$ curl -X GET -H "Accept: application/json" \
https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J \
-u email:password

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

{
  "apiProducts" : [ {
    "apiproduct" : "weather_free",
    "status" : "approved"
  } ],
  "attributes" : [ ],
  "consumerKey" : "HQg0nCZ54adKobpqEJaE8FefGkdKFc2J",
  "consumerSecret" : "1eluIIdWG3JGDjE0",
  "status" : "approved"
}

ज़्यादा जानकारी के लिए, डेवलपर ऐप्लिकेशन के लिए पासकोड की जानकारी पाना लेख पढ़ें.

किसी ऐप्लिकेशन और पासकोड में एपीआई प्रॉडक्ट जोड़ना

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

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

$ curl -H "Content-type:application/json" -X POST -d \
'{
  "apiProducts": [ "newAPIProduct"]
}' \
https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J \
-u email:password 

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

{
  "apiProducts": [
   {
     "apiproduct": "weather_free",
     "status": "approved"
   },
   {
     "apiproduct": "newAPIProduct",
     "status": "approved"
   }
 ],
 "attributes": [],
 "consumerKey": "HQg0nCZ54adKobpqEJaE8FefGkdKFc2J",
 "consumerSecret": "1eluIIdWG3JGDjE0",
 "expiresAt": -1,
 "issuedAt": 1411491156464,
 "scopes": [],
 "status": "approved"
 }

कंज्यूमर पासकोड को मंज़ूरी देना

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

$ curl -X POST -H "Content-type:appilcation/octet-stream" \ 
https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J?"action=approve" \
-u email:password

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

{
  "apiProducts" : [ {
  "apiproduct" : "weather_free",
  "status" : "approved"
} ],
  "attributes" : [ ],
  "consumerKey" : "HQg0nCZ54adKobpqEJaE8FefGkdKFc2J",
  "consumerSecret" : "1eluIIdWG3JGDjE0",
  "status" : "approved"
}

ज़्यादा जानकारी के लिए, डेवलपर ऐप्लिकेशन के किसी खास पासकोड को मंज़ूरी देना या रद्द करना लेख पढ़ें.

कंज्यूमर पासकोड के लिए एपीआई प्रॉडक्ट को मंज़ूरी देना

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

$ curl -X POST -H "Content-type:application/octet-stream" \ 
https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J/apiproducts/weather_free?"action=approve" \
-u email:password

इस cURL कमांड से कोई रिस्पॉन्स नहीं मिलता. ज़्यादा जानकारी के लिए, डेवलपर ऐप्लिकेशन के पासकोड के लिए, एपीआई प्रॉडक्ट को मंज़ूरी देना या रद्द करना लेख पढ़ें.

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

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

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

$ curl -X POST -H "Content-type:application/octet-stream" \ 
https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J/apiproducts/weather_free?"action=revoke" \
-u email:password

इस cURL कमांड से कोई रिस्पॉन्स नहीं मिलता. ज़्यादा जानकारी के लिए, डेवलपर ऐप्लिकेशन के किसी खास पासकोड को मंज़ूरी देना या रद्द करना लेख पढ़ें.

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

एपीआई प्रॉडक्ट को लागू करने के लिए, एपीआई प्रॉक्सी फ़्लो में इनमें से किसी एक नीति के टाइप को जोड़ना होगा:

  • VerifyAPIKey: यह एपीआई पासकोड का रेफ़रंस लेता है, पुष्टि करता है कि यह मान्य ऐप्लिकेशन का है, और एपीआई प्रॉडक्ट से मैच करता है. ज़्यादा जानकारी के लिए, एपीआई पासकोड की पुष्टि करने की नीति लेख पढ़ें.
  • OAuthV1, “VerifyAccessToken” कार्रवाई: यह हस्ताक्षर की पुष्टि करता है, an OAuth 1.0a ऐक्सेस टोकन और “उपयोगकर्ता कुंजी” की पुष्टि करता है, और ऐप्लिकेशन को एपीआई प्रॉडक्ट से मैच करता है. ज़्यादा जानकारी के लिए, OAuth v1.0a की नीति लेख पढ़ें.
  • OAuthV2, “VerifyAccessToken” कार्रवाई: यह पुष्टि करता है कि OAuth 2.0 ऐक्सेस टोकन मान्य है, टोकन को ऐप्लिकेशन से मैच करता है, पुष्टि करता है कि ऐप्लिकेशन मान्य है, और फिर ऐप्लिकेशन को एपीआई प्रॉडक्ट से मैच करता है. ज़्यादा जानकारी के लिए, OAuth के बारे में जानकारी लेख पढ़ें.

नीतियों और एपीआई प्रॉडक्ट को कॉन्फ़िगर करने के बाद, Apigee Edge यह प्रोसेस पूरी करता है:

  1. Apigee Edge को एक अनुरोध मिलता है और उसे सही एपीआई प्रॉक्सी पर भेजा जाता है.
  2. एक नीति लागू की जाती है. यह नीति, क्लाइंट की ओर से दिखाए गए एपीआई पासकोड या OAuth ऐक्सेस टोकन की पुष्टि करती है.
  3. Edge, एपीआई पासकोड या ऐक्सेस टोकन को ऐप्लिकेशन प्रोफ़ाइल में बदलता है.
  4. Edge, ऐप्लिकेशन से जुड़े एपीआई प्रॉडक्ट की सूची (अगर कोई है) को बदलता है.
  5. कोटा वैरिएबल में जानकारी भरने के लिए, मैच होने वाले पहले एपीआई प्रॉडक्ट का इस्तेमाल किया जाता है.
  6. अगर कोई एपीआई प्रॉडक्ट, एपीआई पासकोड या ऐक्सेस टोकन से मैच नहीं होता है, तो अनुरोध को अस्वीकार कर दिया जाता है.
  7. Edge, एपीआई प्रॉडक्ट की सेटिंग के साथ-साथ, कोटा की सेटिंग के आधार पर, यूआरआई के आधार पर ऐक्सेस कंट्रोल (एनवायरमेंट, एपीआई प्रॉक्सी, और यूआरआई पाथ) लागू करता है.