আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
এই অংশে বর্ণনা করা হয়েছে কীভাবে ডেভেলপার পোর্টালে প্রকাশের জন্য এপিআই প্রোডাক্ট তৈরি করতে এজ এপিআই ব্যবহার করতে হয়।
এপিআই ব্যবহার করে এপিআই পণ্য তৈরি করুন
এপিআই প্রোডাক্ট ডেভেলপারদের এপিআই কী এবং ওঅথ অ্যাক্সেস টোকেন ব্যবহার করে এপিআই ব্যবহারকারী অ্যাপ নিবন্ধন করতে সক্ষম করে। এপিআই প্রোডাক্টগুলো এমনভাবে ডিজাইন করা হয়েছে যাতে আপনি এপিআই রিসোর্সগুলোকে 'বান্ডেল' করতে পারেন এবং তারপর সেই বান্ডেলগুলো বিভিন্ন ডেভেলপার গোষ্ঠীর কাছে প্রকাশ করতে পারেন। উদাহরণস্বরূপ, আপনার পার্টনার ডেভেলপারদের কাছে এপিআই রিসোর্সের একটি সেট প্রকাশ করার প্রয়োজন হতে পারে, আবার একই সাথে বাইরের ডেভেলপারদের কাছে আরেকটি বান্ডেল প্রকাশ করতে হতে পারে। এপিআই প্রোডাক্টগুলো আপনাকে আপনার এপিআই-গুলোতে কোনো পরিবর্তন না করেই তাৎক্ষণিকভাবে এই বান্ডলিং করার সুযোগ দেয়। এর একটি অতিরিক্ত সুবিধা হলো, ডেভেলপারদের তাদের অ্যাপের জন্য নতুন কনজিউমার কী সংগ্রহ করার প্রয়োজন ছাড়াই ডেভেলপার অ্যাক্সেস 'আপগ্রেড' এবং 'ডাউনগ্রেড' করা যায়।
এপিআই ব্যবহার করে একটি এপিআই প্রোডাক্ট তৈরি করতে, /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 সেট করা থাকে, তাহলে অ্যাপের জন্য তৈরি হওয়া কী-টি 'পেন্ডিং' (pending) অবস্থায় থাকে। এই ধরনের কীগুলো সুস্পষ্টভাবে অনুমোদিত না হওয়া পর্যন্ত কাজ করবে না। যদি ' auto সেট করা থাকে, তাহলে সমস্ত কী 'অনুমোদিত' (approved) অবস্থায় তৈরি হয় এবং সাথে সাথেই কাজ করে। (সাধারণত সীমিত কোটা বা সক্ষমতা প্রদানকারী ফ্রি/ট্রায়াল এপিআই প্রোডাক্টগুলোতে অ্যাক্সেস দেওয়ার জন্য auto ব্যবহার করা হয়।) | প্রযোজ্য নয় | হ্যাঁ |
attributes | অ্যাট্রিবিউটসমূহের অ্যারে যা গ্রাহক-নির্দিষ্ট মেটাডেটা দিয়ে ডিফল্ট এপিআই প্রোডাক্ট প্রোফাইলকে সম্প্রসারিত করতে ব্যবহার করা যেতে পারে। এপিআই প্রোডাক্টের অ্যাক্সেস লেভেল পাবলিক , প্রাইভেট বা ইন্টারনাল হিসেবে নির্দিষ্ট করতে এই প্রপার্টিটি ব্যবহার করুন। উদাহরণস্বরূপ: "বৈশিষ্ট্যসমূহ": [ { "নাম": "প্রবেশাধিকার", "মান": "সর্বজনীন" }, { "নাম": "ফু","মান": "ফু" }, { "নাম": "বার", "মান": "বার" } ] | প্রযোজ্য নয় | না |
scopes | OAuth স্কোপগুলির একটি কমা-দ্বারা-বিভক্ত তালিকা যা রানটাইমে যাচাই করা হয়। (Apigee Edge যাচাই করে যে উপস্থাপিত যেকোনো অ্যাক্সেস টোকেনের স্কোপগুলি API প্রোডাক্টে সেট করা স্কোপের সাথে মেলে কিনা।) | প্রযোজ্য নয় | না |
proxies | নামযুক্ত এপিআই প্রক্সিগুলো, যেগুলোর সাথে এই এপিআই প্রোডাক্টটি সংযুক্ত। প্রক্সি নির্দিষ্ট করার মাধ্যমে, আপনি এপিআই প্রোডাক্টের রিসোর্সগুলোকে নির্দিষ্ট এপিআই প্রক্সির সাথে যুক্ত করতে পারেন, যা ডেভেলপারদের অন্য এপিআই প্রক্সির মাধ্যমে সেই রিসোর্সগুলো অ্যাক্সেস করা থেকে বিরত রাখে। | প্রযোজ্য নয় | না। যদি সংজ্ঞায়িত না করা হয়, তাহলে apiResources অবশ্যই সুস্পষ্টভাবে সংজ্ঞায়িত করতে হবে (উপরে apiResources সম্পর্কিত তথ্য দেখুন), এবং AssignMessage পলিসিতে flow.resource.name ভেরিয়েবলটি সেট করতে হবে। |
environments | নামযুক্ত এনভায়রনমেন্ট (উদাহরণস্বরূপ 'test' বা 'prod') যার সাথে এই API প্রোডাক্টটি আবদ্ধ। এক বা একাধিক এনভায়রনমেন্ট নির্দিষ্ট করার মাধ্যমে, আপনি API প্রোডাক্টে তালিকাভুক্ত রিসোর্সগুলিকে একটি নির্দিষ্ট এনভায়রনমেন্টের সাথে আবদ্ধ করতে পারেন, যা ডেভেলপারকে অন্য এনভায়রনমেন্টের API প্রক্সির মাধ্যমে সেই রিসোর্সগুলি অ্যাক্সেস করা থেকে বিরত রাখে। এই সেটিংটি ব্যবহার করা হয়, উদাহরণস্বরূপ, 'test'-এ ডেপ্লয় করা API প্রক্সি দ্বারা 'prod'-এর API প্রক্সির সাথে যুক্ত রিসোর্সগুলি অ্যাক্সেস করা থেকে বিরত রাখতে। | প্রযোজ্য নয় | না। যদি সংজ্ঞায়িত না করা থাকে, তাহলে 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এ সেট করুন। এটি নন-মনিটাইজড লিস্ট এপিআই প্রোডাক্টস এপিআই-তে একটি 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 জুড়ে ডেভেলপারের জন্য অনন্য কী (unique key) হিসেবে ব্যবহৃত হয়।
মনিটাইজেশন সমর্থন করার জন্য, ডেভেলপার তৈরি বা সম্পাদনা করার সময় আপনাকে অবশ্যই মনিটাইজেশন অ্যাট্রিবিউটগুলো সংজ্ঞায়িত করতে হবে। এছাড়াও আপনি কাস্টম অ্যানালিটিক্স, কাস্টম পলিসি এনফোর্সমেন্ট ইত্যাদির জন্য অন্যান্য ইচ্ছামতো অ্যাট্রিবিউট সংজ্ঞায়িত করতে পারেন; এই ইচ্ছামতো অ্যাট্রিবিউটগুলো 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 একটি "ক্রেডেনশিয়াল" (একটি কনজিউমার কী এবং সিক্রেট পেয়ার) তৈরি করে যা অ্যাপটিকে শনাক্ত করে। এরপর অ্যাপটিকে অবশ্যই তার সাথে যুক্ত এপিআই প্রোডাক্টে করা প্রতিটি অনুরোধের অংশ হিসেবে এই ক্রেডেনশিয়ালগুলো প্রেরণ করতে হয়।
নিম্নলিখিত অনুরোধটি আপনার উপরে তৈরি করা ডেভেলপার ntesla@theremin.com-এর জন্য একটি অ্যাপ নিবন্ধন করতে Create Developer App API ব্যবহার করে। একটি অ্যাপ নিবন্ধন করার সময় আপনি অ্যাপটির জন্য একটি নাম, একটি callbackUrl এবং এক বা একাধিক API পণ্যের একটি তালিকা নির্ধারণ করেন:
$ 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
অ্যাপ থেকে আসা রিডাইরেক্ট রিকোয়েস্ট যাচাই করার জন্য কিছু OAuth গ্রান্ট টাইপ (যেমন অথরাইজেশন কোড) callbackUrl ব্যবহার করে। আপনি যদি OAuth ব্যবহার করেন, তাহলে এই ভ্যালুটি অবশ্যই OAuth রিকোয়েস্ট করার জন্য ব্যবহৃত redirect_uri এর সমান সেট করতে হবে।
` keyExpiresIn অ্যাট্রিবিউটটি ডেভেলপার অ্যাপের জন্য তৈরি হতে যাওয়া কনজিউমার কী-এর মেয়াদ মিলিসেকেন্ডে নির্দিষ্ট করে। এর ডিফল্ট মান, -১, একটি অসীম বৈধতার সময়কাল নির্দেশ করে।
নমুনা প্রতিক্রিয়া
{ "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" }
এপিআই ব্যবহার করে অ্যাপগুলির জন্য কনজিউমার কী পরিচালনা করুন
অ্যাপটির জন্য কনজিউমার কী (এপিআই কী) সংগ্রহ করুন।
একটি অ্যাপের ক্রেডেনশিয়াল (এপিআই প্রোডাক্ট, কনজিউমার কী এবং সিক্রেট) অ্যাপ প্রোফাইলের অংশ হিসেবে ফেরত দেওয়া হয়। একটি প্রতিষ্ঠানের প্রশাসক যেকোনো সময় কনজিউমার কী পুনরুদ্ধার করতে পারেন।
অ্যাপ প্রোফাইলে কনজিউমার কী এবং সিক্রেটের মান, কনজিউমার কী-এর স্ট্যাটাস, এবং কী-টির জন্য যেকোনো এপিআই প্রোডাক্ট অ্যাসোসিয়েশন প্রদর্শিত হয়। একজন অ্যাডমিন হিসেবে, আপনি 'Get Key Details for a Developer App API' ব্যবহার করে যেকোনো সময় কনজিউমার কী প্রোফাইলটি পুনরুদ্ধার করতে পারেন।
$ 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"
}আরও তথ্যের জন্য ‘ডেভেলপার অ্যাপের মূল বিবরণ জানুন’ দেখুন।
একটি অ্যাপে একটি API পণ্য এবং কী যোগ করুন
একটি নতুন এপিআই প্রোডাক্ট যোগ করতে অ্যাপ আপডেট করার জন্য, আপনাকে আসলে 'Add API Product to Key API' ব্যবহার করে অ্যাপটির কী-তে এপিআই প্রোডাক্টটি যুক্ত করতে হবে। আরও তথ্যের জন্য 'Add API Product to Key' দেখুন।
একটি অ্যাপ কী-তে একটি এপিআই প্রোডাক্ট যোগ করলে, সেই কী-ধারী অ্যাপটি এপিআই প্রোডাক্টের অন্তর্ভুক্ত এপিআই রিসোর্সগুলো অ্যাক্সেস করতে পারে। নিম্নলিখিত মেথড কলটি একটি অ্যাপে নতুন এপিআই প্রোডাক্ট যোগ করে:
$ 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 এ সেট করা থাকে, তখন কনজিউমার কী-গুলোকে অবশ্যই সুস্পষ্টভাবে অনুমোদন করতে হবে। ডেভেলপার অ্যাপ এপিআই -এর ‘নির্দিষ্ট কী অনুমোদন বা প্রত্যাহার’ (Approve or Revoke Specific Key of Developer App API) ব্যবহার করে কী-গুলোকে সুস্পষ্টভাবে অনুমোদন করা যায়:
$ 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"
}আরও তথ্যের জন্য ‘ডেভেলপার অ্যাপের নির্দিষ্ট কী অনুমোদন বা বাতিল করুন’ দেখুন।
কনজিউমার কী-এর জন্য এপিআই প্রোডাক্ট অনুমোদন করুন
একটি কনজিউমার কী-এর সাথে একটি এপিআই প্রোডাক্টের সংযোগেরও একটি স্ট্যাটাস থাকে। এপিআই অ্যাক্সেস সফল হওয়ার জন্য, কনজিউমার কী-টি অবশ্যই অনুমোদিত হতে হবে এবং উপযুক্ত এপিআই প্রোডাক্টের জন্য অনুমোদিত হতে হবে। একটি ডেভেলপার অ্যাপ এপিআই-এর জন্য 'Approve or Revoke API Product for a Key' ব্যবহার করে একটি এপিআই প্রোডাক্টের সাথে কনজিউমার কী-এর সংযোগ অনুমোদন করা যেতে পারে।
$ 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: একটি এপিআই কী-এর রেফারেন্স গ্রহণ করে, সেটি একটি বৈধ অ্যাপের প্রতিনিধিত্ব করে কিনা এবং এপিআই প্রোডাক্টের সাথে মেলে কিনা তা যাচাই করে। আরও তথ্যের জন্য Verify API Key পলিসি দেখুন।
- OAuthV1, “VerifyAccessToken” অপারেশন: এটি সিগনেচার যাচাই করে, একটি OAuth 1.0a অ্যাক্সেস টোকেন এবং “কনজিউমার কী” ভ্যালিডেট করে, এবং অ্যাপটিকে API প্রোডাক্টের সাথে মিলিয়ে নেয়। আরও তথ্যের জন্য OAuth v1.0a পলিসি দেখুন।
- OAuthV2, “VerifyAccessToken” অপারেশন: এটি OAuth 2.0 অ্যাক্সেস টোকেনটি বৈধ কিনা তা যাচাই করে, টোকেনটিকে অ্যাপের সাথে মেলায়, অ্যাপটি বৈধ কিনা তা যাচাই করে এবং তারপর অ্যাপটিকে একটি API প্রোডাক্টের সাথে মেলায়। আরও তথ্যের জন্য OAuth হোম দেখুন।
পলিসি এবং এপিআই প্রোডাক্টগুলো কনফিগার করা হয়ে গেলে, Apigee Edge নিম্নলিখিত প্রক্রিয়াটি সম্পাদন করে:
- Apigee Edge একটি অনুরোধ গ্রহণ করে এবং সেটিকে উপযুক্ত API প্রক্সিতে পাঠিয়ে দেয়।
- এমন একটি পলিসি কার্যকর করা হয় যা ক্লায়েন্ট কর্তৃক উপস্থাপিত এপিআই কী বা ওঅথ অ্যাক্সেস টোকেন যাচাই করে।
- Edge এপিআই কী বা অ্যাক্সেস টোকেনটিকে একটি অ্যাপ প্রোফাইলে রূপান্তর করে।
- Edge অ্যাপটির সাথে যুক্ত API প্রোডাক্টগুলোর তালিকা (যদি থাকে) সমাধান করে।
- প্রথম যে এপিআই প্রোডাক্টটি মিলে যায়, সেটি কোটা ভেরিয়েবল পূরণ করতে ব্যবহৃত হয়।
- যদি এপিআই কী বা অ্যাক্সেস টোকেনের সাথে কোনো এপিআই প্রোডাক্ট না মেলে, তাহলে অনুরোধটি প্রত্যাখ্যান করা হয়।
- Edge, API প্রোডাক্ট সেটিংস এবং কোটা সেটিংসের উপর ভিত্তি করে URI-ভিত্তিক অ্যাক্সেস কন্ট্রোল (এনভায়রনমেন্ট, API প্রক্সি, এবং URI পাথ) প্রয়োগ করে।