Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं. जानकारी
इस सेक्शन में बताया गया है कि डेवलपर पोर्टल में पब्लिकेशन के लिए एपीआई प्रॉडक्ट बनाने के लिए, Edge API का इस्तेमाल कैसे करें.
एपीआई का इस्तेमाल करके एपीआई प्रॉडक्ट बनाएं
एपीआई प्रॉडक्ट की मदद से, डेवलपर ऐसे ऐप्लिकेशन रजिस्टर कर सकते हैं जो एपीआई का इस्तेमाल करने के लिए, एपीआई कुंजियों और OAuth ऐक्सेस टोकन का इस्तेमाल करते हैं. एपीआई प्रॉडक्ट इस तरह से डिज़ाइन किए गए हैं कि आप एपीआई के संसाधनों को 'बंडल' कर सकें. इसके बाद, इन प्रॉडक्ट को डेवलपर के अलग-अलग ग्रुप के लिए पब्लिश किया जा सके. उदाहरण के लिए, बाहरी डेवलपर के लिए दूसरा बंडल पब्लिश करते समय, हो सकता है कि आपको एपीआई रिसॉर्स का एक सेट अपने पार्टनर डेवलपर के लिए पब्लिश करना पड़े. एपीआई प्रॉडक्ट की मदद से, अपने एपीआई में कोई बदलाव किए बिना ही, बंडल को तुरंत प्रोसेस किया जा सकता है. इसका एक अतिरिक्त फ़ायदा यह भी है कि डेवलपर ऐक्सेस को 'अपग्रेड' या 'डाउनग्रेड' किया जा सकता है. इसके लिए, डेवलपर को अपने ऐप्लिकेशन के लिए नई उपभोक्ता कुंजियां पाने की ज़रूरत नहीं होगी.
एपीआई का इस्तेमाल करके एपीआई प्रॉडक्ट बनाने के लिए, /organizations/{org_name}/apiproducts
पर एक पोस्ट अनुरोध जारी करें.
ज़्यादा जानकारी के लिए, Create API Product API रेफ़रंस देखें.
नीचे दिया गया अनुरोध, 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 |
यूआरआई या संसाधन पाथ की कॉमा-सेपरेटेड लिस्ट, जिसे एपीआई प्रॉडक्ट में 'बंडल किया गया' माना जाता है. डिफ़ॉल्ट रूप से, रिसॉर्स पाथ, कोई खास पाथ चुना जा सकता है. इसके अलावा, वाइल्डकार्ड वाले सभी सबपाथ को चुना जा सकता है.
वाइल्डकार्ड (/** और /*) इस्तेमाल किए जा सकते हैं. दो तारे के निशान वाला वाइल्डकार्ड बताता है कि सभी
सब-यूआरआई शामिल किए गए हैं. एक तारे से पता चलता है कि सिर्फ़ एक लेवल नीचे वाले यूआरआई को शामिल किया गया है. |
लागू नहीं | नहीं |
approvalType |
इससे पता चलता है कि एपीआई प्रॉडक्ट के ज़रिए तय किए गए एपीआई को ऐक्सेस करने के लिए, एपीआई कुंजियों को कैसे मंज़ूरी दी जाती है. अगर
इसे manual पर सेट किया जाता है, तो ऐप्लिकेशन के लिए जनरेट की गई कुंजी 'मंज़ूरी बाकी है' की स्थिति में होती है.
जब तक इन कुंजियों को साफ़ तौर पर अनुमति नहीं दी जाती, तब तक ये काम नहीं करेंगी. अगर इस नीति को auto पर सेट किया जाता है,
तो सभी बटन 'स्वीकार किया गया' के तौर पर जनरेट होते हैं और तुरंत काम करते हैं. (आम तौर पर, auto का इस्तेमाल,
मुफ़्त/ट्रायल एपीआई वाले ऐसे प्रॉडक्ट का ऐक्सेस देने के लिए किया जाता है जो सीमित कोटा
या क्षमताएं देते हैं.) |
लागू नहीं | हां |
attributes |
खरीदारों के लिए खास मेटाडेटा के साथ डिफ़ॉल्ट एपीआई प्रॉडक्ट प्रोफ़ाइल को बढ़ाने के लिए, इस्तेमाल किए जा सकने वाले एट्रिब्यूट का कलेक्शन.
एपीआई प्रॉडक्ट के ऐक्सेस लेवल को सार्वजनिक, निजी या इंटरनल के तौर पर बताने के लिए, इस प्रॉपर्टी का इस्तेमाल करें. उदाहरण के लिए:
"एट्रिब्यूट": [
{
"name": "access",
"value": "सार्वजनिक"
},
{
"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 की जानकारी साफ़ तौर पर दी जानी चाहिए. साथ ही, AssignmentsMessage नीति में flow.resource.name वैरिएबल सेट किया गया होना चाहिए. |
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 पर, स्कोप की सुविधा देना ज़रूरी नहीं है. ज़्यादा बारीकी से अनुमति पाने के लिए, स्कोप का इस्तेमाल किया जा सकता है. किसी ऐप्लिकेशन को जारी की जाने वाली हर ग्राहक कुंजी, 'मास्टर स्कोप' से जुड़ी होती है. मास्टर स्कोप, ऐप्लिकेशन के लिए स्वीकार किए गए सभी एपीआई प्रॉडक्ट में मौजूद सभी स्कोप का सेट होता है. उन ऐप्लिकेशन के लिए जिन्हें एपीआई वाले एक से ज़्यादा प्रॉडक्ट का इस्तेमाल करने की अनुमति मिली है, मास्टर स्कोप उन एपीआई प्रॉडक्ट में बताए गए सभी दायरों का यूनियन होता है जिनके लिए उपभोक्ता कुंजी को अनुमति दी गई है.
एपीआई प्रॉडक्ट देखें
एपीआई का इस्तेमाल करके किसी संगठन के लिए बनाए गए एपीआई प्रॉडक्ट देखने के लिए, नीचे दिए गए सेक्शन देखें:
- एपीआई प्रॉडक्ट देखें (कमाई करने की सुविधा वाले)
डिफ़ॉल्ट रूप से, कमाई करने वाले एपीआई के प्रॉडक्ट ही दिखाए जाते हैं. इसका मतलब है कि एपीआई प्रॉडक्ट, जिनके लिए कम से कम एक रेट प्लान पब्लिश किया गया है. सभी एपीआई प्रॉडक्ट को दिखाने के लिए,
monetized
क्वेरी पैरामीटर कोfalse
पर सेट करें. यह कमाई न करने वाले List API प्रॉडक्ट API को GET अनुरोध जारी करने जैसा ही है:https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts?expand=true
- एपीआई प्रॉडक्ट देखें (ऐसे प्रॉडक्ट जिनसे कमाई नहीं की जा सकती)
- डेवलपर के लिए, ज़रूरी शर्तें पूरी करने वाले एपीआई प्रॉडक्ट देखना
- किसी कंपनी के लिए, ज़रूरी शर्तें पूरी करने वाले एपीआई प्रॉडक्ट देखना
एपीआई का इस्तेमाल करके, एपीआई प्रॉडक्ट देखने का तरीका यहां दिया गया है:
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 में एक यूनीक कुंजी के तौर पर इस्तेमाल किया जाता है.
कमाई करने की सुविधा चालू करने के लिए, डेवलपर बनाते या उनमें बदलाव करते समय, आपको कमाई करने से जुड़े एट्रिब्यूट तय करने होंगे. कस्टम Analytics, नीति के उल्लंघन को ठीक करने के तरीके वगैरह में इस्तेमाल के लिए, आप आर्बिट्रेरी एट्रिब्यूट के दूसरे एट्रिब्यूट भी तय कर सकते हैं. 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 एक "क्रेडेंशियल" (एक उपभोक्ता कुंजी और सीक्रेट जोड़ा) जनरेट करता है, जिससे ऐप्लिकेशन की पहचान होती है. इसके बाद, ऐप्लिकेशन को ये क्रेडेंशियल ऐप्लिकेशन से जुड़े किसी एपीआई प्रॉडक्ट को किए जाने वाले हर अनुरोध के हिस्से के तौर पर पास करना होगा.
नीचे दिए गए अनुरोध में, आपने ऊपर बनाए गए डेवलपर के लिए ऐप्लिकेशन को रजिस्टर किया है. इसके लिए, डेवलपर ऐप्लिकेशन बनाएं एपीआई का इस्तेमाल किया जाता है: 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" }
ज़्यादा जानकारी के लिए, डेवलपर ऐप्लिकेशन के बारे में मुख्य जानकारी पाएं देखें.
किसी ऐप्लिकेशन और पासकोड में, एपीआई प्रॉडक्ट जोड़ना
एपीआई प्रॉडक्ट जोड़ने के लिए किसी ऐप्लिकेशन को अपडेट करने के लिए, आपको ऐप्लिकेशन की कुंजी में एपीआई प्रॉडक्ट जोड़ना होगा. इसके लिए, Key API में एपीआई प्रॉडक्ट जोड़ें का इस्तेमाल करें. ज़्यादा जानकारी के लिए, एपीआई प्रॉडक्ट को पासकोड में जोड़ें देखें.
'ऐप्लिकेशन कुंजी' में एपीआई प्रॉडक्ट जोड़ने से, वह ऐप्लिकेशन चालू हो जाता है जिसके पास एपीआई प्रॉडक्ट में बंडल किए गए, एपीआई रिसॉर्स को ऐक्सेस करने की कुंजी होती है. नीचे दिए गए तरीके का इस्तेमाल करके, किसी ऐप्लिकेशन में एक नया एपीआई प्रॉडक्ट जोड़ा जा सकता है:
$ 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 निर्देश कोई जवाब नहीं देता है. ज़्यादा जानकारी के लिए, डेवलपर ऐप्लिकेशन की खास कुंजी को स्वीकार या रद्द करना देखें.
एपीआई प्रॉडक्ट की सेटिंग लागू करें
एपीआई प्रॉडक्ट लागू करने के लिए, इनमें से किसी एक तरह की नीति को एपीआई प्रॉक्सी फ़्लो के साथ अटैच करना होगा:
- पुष्टि करने के लिए APIKey: एपीआई पासकोड के रेफ़रंस का इस्तेमाल करता है. साथ ही, यह पुष्टि करता है कि यह मान्य ऐप्लिकेशन है या नहीं, और एपीआई प्रॉडक्ट से मेल खाता है या नहीं. ज़्यादा जानकारी के लिए, एपीआई पासकोड से जुड़ी नीति की पुष्टि करें देखें.
- OAuthV1, “VerifyAccessToken” कार्रवाई: हस्ताक्षर की पुष्टि की जाती है. साथ ही, OAuth 1.0a ऐक्सेस टोकन और “उपभोक्ता कुंजी” की पुष्टि की जाती है. इसके अलावा, ऐप्लिकेशन का मिलान एपीआई प्रॉडक्ट से होता है. ज़्यादा जानकारी के लिए, OAuth v1.0a की नीति देखें.
- OAuthV2, “VerifyAccessToken” कार्रवाई: इस बात की पुष्टि करता है कि OAuth 2.0 ऐक्सेस टोकन मान्य है या नहीं. साथ ही, यह ऐप्लिकेशन के टोकन से मेल खाता है और ऐप्लिकेशन के मान्य होने की पुष्टि करता है. इसके बाद, ऐप्लिकेशन का मिलान, एपीआई प्रॉडक्ट से करता है. ज़्यादा जानकारी के लिए, OAuth होम देखें.
नीतियों और एपीआई प्रॉडक्ट को कॉन्फ़िगर किए जाने के बाद, Apigee Edge यह प्रोसेस करता है:
- Apigee Edge को एक अनुरोध मिलता है और उसे सही एपीआई प्रॉक्सी पर भेजा जाता है.
- इसके लिए, ऐसी नीति का इस्तेमाल किया जाता है जो क्लाइंट से मिले एपीआई पासकोड या OAuth ऐक्सेस टोकन की पुष्टि करती है.
- Edge, ऐप्लिकेशन प्रोफ़ाइल में एपीआई पासकोड या ऐक्सेस टोकन को रिज़ॉल्व करता है.
- Edge, ऐप्लिकेशन से जुड़े एपीआई प्रॉडक्ट की सूची (अगर कोई हो) को दिखाता है.
- मेल खाने वाला पहला एपीआई प्रॉडक्ट, कोटा वैरिएबल को भरने के लिए इस्तेमाल किया जाता है.
- अगर कोई भी एपीआई प्रॉडक्ट, एपीआई पासकोड या ऐक्सेस टोकन से मेल नहीं खाता है, तो अनुरोध अस्वीकार कर दिया जाता है.
- Edge, कोटा सेटिंग के साथ-साथ एपीआई की प्रॉडक्ट सेटिंग के आधार पर यूआरआई पर आधारित ऐक्सेस कंट्रोल (एनवायरमेंट, एपीआई प्रॉक्सी, और यूआरआई पाथ) लागू करता है.