Apigee Edge का दस्तावेज़ देखा जा रहा है.
Apigee X के दस्तावेज़ पर जाएं. info
इस सेक्शन में, डेवलपर पोर्टल में पब्लिश करने के लिए एपीआई प्रॉडक्ट बनाने के लिए, Edge API का इस्तेमाल करने का तरीका बताया गया है.
एपीआई का इस्तेमाल करके एपीआई प्रॉडक्ट बनाना
एपीआई प्रॉडक्ट की मदद से डेवलपर, ऐसे ऐप्लिकेशन रजिस्टर कर सकते हैं जो एपीआई का इस्तेमाल करते हैं. इसके लिए, एपीआई पासकोड और OAuth ऐक्सेस टोकन का इस्तेमाल किया जाता है. एपीआई प्रॉडक्ट को इस तरह से डिज़ाइन किया गया है कि इनकी मदद से, एपीआई संसाधनों को 'बंडल' किया जा सकता है. इसके बाद, इन बंडलों को डेवलपर के अलग-अलग ग्रुप में पब्लिश किया जा सकता है. उदाहरण के लिए, आपको अपने पार्टनर डेवलपर के लिए एपीआई संसाधनों का एक सेट पब्लिश करना पड़ सकता है. वहीं, बाहरी डेवलपर के लिए आपको दूसरा बंडल पब्लिश करना पड़ सकता है. एपीआई प्रॉडक्ट की मदद से, इस बंडलिंग को तुरंत किया जा सकता है. इसके लिए, आपको अपने एपीआई में कोई बदलाव करने की ज़रूरत नहीं होती. इसका एक और फ़ायदा यह है कि डेवलपर के ऐक्सेस को 'अपग्रेड' और 'डाउनग्रेड' किया जा सकता है. इसके लिए, डेवलपर को अपने ऐप्लिकेशन के लिए नई उपभोक्ता कुंजियां पाने की ज़रूरत नहीं होती.
एपीआई का इस्तेमाल करके एपीआई प्रॉडक्ट बनाने के लिए, /organizations/{org_name}/apiproducts पर POST अनुरोध करें.
ज़्यादा जानकारी के लिए, Create API Product एपीआई का संदर्भ देखें.
यहां दिए गए अनुरोध से, weather_free नाम का एपीआई प्रॉडक्ट बनाया जाता है. एपीआई प्रॉडक्ट, test एनवायरमेंट में डिप्लॉय किए गए weatherapi नाम के एपीआई प्रॉक्सी के सभी एपीआई को ऐक्सेस करने की सुविधा देता है. अनुमति का टाइप 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 |
एट्रिब्यूट का ऐसा कलेक्शन जिसका इस्तेमाल, एपीआई की डिफ़ॉल्ट प्रॉडक्ट प्रोफ़ाइल को ग्राहक के हिसाब से मेटाडेटा के साथ बढ़ाने के लिए किया जा सकता है.
इस प्रॉपर्टी का इस्तेमाल करके, एपीआई प्रॉडक्ट के ऐक्सेस लेवल को सार्वजनिक, निजी या आंतरिक के तौर पर तय करें. उदाहरण के लिए:
"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 को साफ़ तौर पर तय किया जाना चाहिए. साथ ही, AssignMessage नीति में 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 के उन प्रॉडक्ट के लिए 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 में डेवलपर के लिए यूनीक पासकोड के तौर पर किया जाता है.
कमाई करने की सुविधा के लिए, डेवलपर बनाते या उनमें बदलाव करते समय, आपको कमाई करने से जुड़े एट्रिब्यूट तय करने होंगे. कस्टम आंकड़ों, कस्टम नीति लागू करने वगैरह में इस्तेमाल करने के लिए, अन्य आर्बिट्ररी एट्रिब्यूट भी तय किए जा सकते हैं. Apigee Edge इन आर्बिट्ररी एट्रिब्यूट को नहीं समझेगा,
उदाहरण के लिए, यहां दिए गए अनुरोध में, उस डेवलपर के लिए एक प्रोफ़ाइल रजिस्टर की गई है जिसका ईमेल पता ntesla@theremin.com है. साथ ही, Create developer API का इस्तेमाल करके, कमाई करने से जुड़े एट्रिब्यूट का सबसेट तय किया गया है:
$ 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 एक "क्रेडेंशियल" (उपयोगकर्ता कुंजी और सीक्रेट जोड़ा) जनरेट करता है. इससे ऐप्लिकेशन की पहचान होती है. इसके बाद, ऐप्लिकेशन को इन क्रेडेंशियल को ऐप्लिकेशन से जुड़े हर एपीआई प्रॉडक्ट के अनुरोध के हिस्से के तौर पर पास करना होगा.
नीचे दिए गए अनुरोध में, Create Developer App एपीआई का इस्तेमाल किया गया है. इससे, ऊपर बनाए गए डेवलपर के लिए एक ऐप्लिकेशन रजिस्टर किया जा सकता है: 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 के कुछ Grant Type (जैसे कि ऑथराइज़ेशन कोड) करते हैं. इससे ऐप्लिकेशन से रीडायरेक्ट किए गए अनुरोधों की पुष्टि की जाती है. अगर OAuth का इस्तेमाल किया जाता है, तो इस वैल्यू को redirect_uri के बराबर सेट किया जाना चाहिए. इसका इस्तेमाल OAuth अनुरोध करने के लिए किया जाता है.
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"
}ज़्यादा जानकारी के लिए, किसी डेवलपर ऐप्लिकेशन की मुख्य जानकारी पाना लेख पढ़ें.
किसी ऐप्लिकेशन और पासकोड में एपीआई प्रॉडक्ट जोड़ना
किसी ऐप्लिकेशन को अपडेट करके नया एपीआई प्रॉडक्ट जोड़ने के लिए, आपको Add API Product to 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 कमांड कोई जवाब नहीं देती है. ज़्यादा जानकारी के लिए, डेवलपर ऐप्लिकेशन की किसी खास कुंजी को स्वीकार करना या रद्द करना लेख पढ़ें.
एपीआई प्रॉडक्ट की सेटिंग लागू करना
एपीआई प्रॉडक्ट लागू करने के लिए, एपीआई प्रॉक्सी फ़्लो में इनमें से किसी एक तरह की नीति अटैच होनी चाहिए:
- VerifyAPIKey: यह एपीआई पासकोड का रेफ़रंस लेता है. साथ ही, यह पुष्टि करता है कि यह एक मान्य ऐप्लिकेशन को दिखाता है और एपीआई प्रॉडक्ट से मेल खाता है. ज़्यादा जानकारी के लिए, एपीआई कुंजी की पुष्टि करने से जुड़ी नीति देखें.
- OAuthV1, “VerifyAccessToken” ऑपरेशन: यह हस्ताक्षर की पुष्टि करता है. साथ ही, OAuth 1.0a के ऐक्सेस टोकन और “उपयोगकर्ता कुंजी” की पुष्टि करता है. इसके अलावा, यह ऐप्लिकेशन को एपीआई प्रॉडक्ट से मैच करता है. OAuth 1.0a के लिए सहायता बंद कर दी गई है. इसके बारे में जानने के लिए, बंद की गई सुविधाएं देखें.
- OAuthV2, “VerifyAccessToken” ऑपरेशन: इससे यह पुष्टि की जाती है कि OAuth 2.0 ऐक्सेस टोकन मान्य है, टोकन ऐप्लिकेशन से मेल खाता है, ऐप्लिकेशन मान्य है, और फिर ऐप्लिकेशन, एपीआई प्रॉडक्ट से मेल खाता है. ज़्यादा जानकारी के लिए, OAuth होम देखें.
नीतियों और एपीआई प्रॉडक्ट को कॉन्फ़िगर करने के बाद, Apigee Edge यह प्रोसेस पूरी करता है:
- Apigee Edge को एक अनुरोध मिलता है और उसे सही एपीआई प्रॉक्सी पर भेज दिया जाता है.
- एक नीति लागू की जाती है. यह नीति, क्लाइंट की ओर से सबमिट किए गए एपीआई पासकोड या OAuth ऐक्सेस टोकन की पुष्टि करती है.
- Edge, एपीआई पासकोड या ऐक्सेस टोकन को किसी ऐप्लिकेशन प्रोफ़ाइल से जोड़ता है.
- Edge, ऐप्लिकेशन से जुड़े एपीआई प्रॉडक्ट की सूची (अगर कोई है) को हल करता है.
- कोटा वैरिएबल में डेटा भरने के लिए, मैच करने वाले पहले एपीआई प्रॉडक्ट का इस्तेमाल किया जाता है.
- अगर कोई एपीआई प्रॉडक्ट, एपीआई पासकोड या ऐक्सेस टोकन से मेल नहीं खाता है, तो अनुरोध अस्वीकार कर दिया जाता है.
- Edge, एपीआई प्रॉडक्ट की सेटिंग और कोटा सेटिंग के आधार पर, यूआरआई पर आधारित ऐक्सेस कंट्रोल (एनवायरमेंट, एपीआई प्रॉक्सी, और यूआरआई पाथ) लागू करता है.