Edge API ব্যবহার করে API প্রকাশ করা

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

এই বিভাগে, ডেভেলপার পোর্টাল প্রকাশ করার জন্য API প্রোডাক্ট তৈরি করতে Edge API কীভাবে ব্যবহার করতে হয় তা বর্ণনা করা হয়েছে।

API ব্যবহার করে API প্রোডাক্ট তৈরি করা

API প্রোডাক্ট, ডেভেলপারদের API কী ও OAuth অ্যাক্সেস টোকেন ব্যবহার করে API কনজিউম করা অ্যাপ রেজিস্টার করতে দেয়। API প্রোডাক্ট এমনভাবে ডিজাইন করা হয়েছে যাতে আপনি API রিসোর্স 'বান্ডেল' করতে পারেন এবং তারপর সেইসব বান্ডেল বিভিন্ন গ্রুপের ডেভেলপারদের কাছে প্রকাশ করতে পারেন। যেমন, আপনার পার্টনার ডেভেলপারদের জন্য API রিসোর্সের একটি সেট প্রকাশ করতে হতে পারে, আবার এক্সটার্নাল ডেভেলপারদের জন্য অন্য একটি বান্ডেল প্রকাশ করতে হতে পারে। API প্রোডাক্ট আপনাকে API-তে কোনও পরিবর্তন না করেই, অন-দ্য-ফ্লাই এই বান্ডেল করার সুবিধা দেয়। অতিরিক্ত সুবিধা হল, ডেভেলপার অ্যাক্সেস 'আপগ্রেড' ও 'ডাউনগ্রেড' করা যায় এবং এর জন্য ডেভেলপারদের অ্যাপের জন্য নতুন কনজিউমার কী পেতে হয় না।

API ব্যবহার করে API প্রোডাক্ট তৈরি করতে, /organizations/{org_name}/apiproducts-এ একটি POST অনুরোধ ইস্যু করুন। আরও তথ্যের জন্য, API প্রোডাক্ট তৈরি করুন API রেফারেন্স দেখুন।

নিম্নলিখিত অনুরোধটি weather_free নামের একটি API প্রোডাক্ট তৈরি করে। API প্রোডাক্ট test এনভায়রনমেন্টে ডেপ্লয় করা weatherapi নামের API প্রক্সি দ্বারা এক্সপোজ করা সব API-তে অ্যাক্সেস প্রদান করে। অনুমোদনের ধরন 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" : [ ]
}

উপরে তৈরি করা API প্রোডাক্টটি সবচেয়ে প্রাথমিক পরিস্থিতি প্রয়োগ করে, কোনও এনভায়রনমেন্টে API প্রক্সি অনুরোধ অনুমোদন করে। এটি এমন একটি API প্রোডাক্টকে সংজ্ঞায়িত করে যা কোনও অনুমোদিত অ্যাপকে টেস্ট এনভায়রনমেন্টে চলমান API প্রক্সির মাধ্যমে অ্যাক্সেস করা যেকোনও API রিসোর্স অ্যাক্সেস করতে সক্ষম করে। API প্রোডাক্ট অতিরিক্ত কনফিগারেশন সেটিংস প্রকাশ করে যা আপনাকে বিভিন্ন ডেভেলপার গ্রুপের জন্য আপনার API-তে অ্যাক্সেস কন্ট্রোল কাস্টমাইজ করতে দেয়। যেমন, আপনি দুটি API প্রোডাক্ট তৈরি করতে পারেন যা বিভিন্ন API প্রক্সি অ্যাক্সেস করার সুযোগ দেয়। এছাড়াও, আপনি দুটি API প্রোডাক্ট তৈরি করতে পারেন যা একই API প্রক্সি অ্যাক্সেস প্রদান করে, তবে এর সাথে কোটা সেটিংস আলাদাভাবে যুক্ত থাকে।

API প্রোডাক্ট কনফিগারেশন সেটিংস

API প্রোডাক্ট নিম্নলিখিত কনফিগারেশন বিকল্পগুলি প্রকাশ করে:

নাম বিবরণ ডিফল্ট প্রয়োজনীয়?
apiResources

API প্রোডাক্টে 'বান্ডেল' করা URI বা রিসোর্স পাথের কমা-সেপারেটেড তালিকা।

ডিফল্ট হিসেবে, রিসোর্স পাথ proxy.pathsuffix ভেরিয়েবল থেকে ম্যাপ করা হয়। প্রক্সি পাথ সাফিক্সকে ProxyEndpoint বেস পাথের পরবর্তী URI ফ্র্যাগমেন্ট হিসেবে সংজ্ঞায়িত করা হয়। যেমন, নিচে দেওয়া API প্রোডাক্টের নমুনাতে, apiResources এলিমেন্টকে /forecastrss হিসেবে সংজ্ঞায়িত করা হয়েছে। এই API প্রক্সির জন্য নির্ধারিত বেস পাথ হল /weather, এর অর্থ হল যে এই API প্রোডাক্ট শুধুমাত্র /weather/forecastrss-এ করা অনুরোধের অনুমতি দেয়।

আপনি নির্দিষ্ট পাথ বেছে নিতে পারেন অথবা ওয়াইল্ডকার্ড সহ সব সাব-পাথ বেছে নিতে পারেন। ওয়াইল্ডকার্ড (/** এবং /*) কাজ করে। ডবল তারকাচিহ্ন ওয়াইল্ডকার্ড থেকে বোঝা যায় যে সব সাব-URI অন্তর্ভুক্ত রয়েছে। একটি তারাচিহ্ন ইঙ্গিত করে যে শুধুমাত্র এক লেভেল নিচের URI অন্তর্ভুক্ত করা হয়েছে।

ডিফল্ট হিসেবে, '/' API প্রক্সি দ্বারা সংজ্ঞায়িত Base Path-এর পাশাপাশি '/**'-এর মতো একই রিসোর্স কাজ করে। যেমন, API প্রক্সির বেস পাথ যদি /v1/weatherapikey হয়, তাহলে API প্রোডাক্ট /v1/weatherapikey এবং এর সাব-URI-তে করা অনুরোধে কাজ করে, যেমন /v1/weatherapikey/forecastrss, /v1/weatherapikey/region/CA ইত্যাদি। এই ডিফল্টের আচরণ পরিবর্তন করা সংক্রান্ত তথ্যের জন্য API প্রোডাক্ট ম্যানেজ করুন দেখুন।

প্রযোজ্য নয় না
approvalType API প্রোডাক্টের মাধ্যমে সংজ্ঞায়িত API অ্যাক্সেস করার জন্য API কী কীভাবে অনুমোদন করা হয় তা নির্দিষ্ট করে। manual সেট করা থাকলে, অ্যাপের জন্য জেনারেট করা কী 'পেন্ডিং' অবস্থায় থাকে। এই ধরনের কী স্পষ্টভাবে অনুমোদন না করা পর্যন্ত কাজ করবে না। auto হিসেবে সেট করা থাকলে, সব কী 'অনুমোদিত' হিসেবে তৈরি হয় এবং সাথে সাথেই কাজ করে। (auto সাধারণত সীমিত কোটা বা ক্ষমতা প্রদান করে এমন ফ্রি/ট্রায়াল API প্রোডাক্টে অ্যাক্সেস দেওয়ার জন্য ব্যবহার করা হয়।) প্রযোজ্য নয় হ্যাঁ
attributes

কাস্টমার-নির্দিষ্ট মেটাডেটা সহ ডিফল্ট API প্রোডাক্ট প্রোফাইল বাড়াতে ব্যবহার করা যেতে পারে এমন অ্যাট্রিবিউটের অ্যারে।

API প্রোডাক্টের অ্যাক্সেস লেভেল পাবলিক, প্রাইভেট বা ইন্টার্নাল হিসেবে নির্দিষ্ট করতে এই প্রপার্টি ব্যবহার করুন। যেমন:
"attributes": [
{
"name": "access",
"value": "public"
},
{
"name": "foo",
"value": "foo"
},
{
"name": "bar",
"value": "bar"
}
]
প্রযোজ্য নয় না
scopes রানটাইমে যাচাই করা OAuth স্কোপের কমা-সেপারেটেড তালিকা। (Apigee Edge যাচাই করে যে, উপস্থাপিত যেকোনও অ্যাক্সেস টোকেনের স্কোপ, API প্রোডাক্টে সেট করা স্কোপের সাথে ম্যাচ করছে কিনা।) প্রযোজ্য নয় না
proxies এই API প্রোডাক্ট যে নির্দিষ্ট API প্রক্সি সার্ভারের সাথে যুক্ত। প্রক্সি নির্দিষ্ট করার মাধ্যমে, আপনি API প্রোডাক্টের রিসোর্সকে নির্দিষ্ট API প্রক্সির সাথে অ্যাসোসিয়েট করতে পারবেন, এর ফলে ডেভেলপাররা অন্যান্য API প্রক্সির মাধ্যমে সেইসব রিসোর্স অ্যাক্সেস করতে পারবেন না। প্রযোজ্য নয় না। সংজ্ঞায়িত করা না থাকলে, apiResources অবশ্যই স্পষ্টভাবে সংজ্ঞায়িত করতে হবে (apiResources-এর জন্য উপরে দেওয়া তথ্য দেখুন), এবং flow.resource.name ভেরিয়েবল AssignMessage নীতিতে সেট করতে হবে।
environments এই API প্রোডাক্ট যে নির্দিষ্ট নামের এনভায়রনমেন্টের সাথে যুক্ত (যেমন, 'test' বা 'prod")। এক বা একাধিক এনভায়র্নমেন্ট নির্দিষ্ট করার মাধ্যমে, আপনি API প্রোডাক্টে তালিকাভুক্ত রিসোর্সগুলিকে নির্দিষ্ট এনভায়র্নমেন্টের সাথে বাইন্ড করতে পারবেন, এর ফলে ডেভেলপাররা অন্য এনভায়র্নমেন্টে API প্রক্সি ব্যবহার করে সেইসব রিসোর্স অ্যাক্সেস করতে পারবেন না। এই সেটিং ব্যবহার করা হয়, যেমন, 'prod'-এ API প্রক্সির সাথে যুক্ত রিসোর্সকে 'test'-এ ডেপ্লয় করা API প্রক্সি যাতে অ্যাক্সেস করতে না পারে তা নিশ্চিত করতে। প্রযোজ্য নয় না। সংজ্ঞায়িত করা না থাকলে, apiResources অবশ্যই স্পষ্টভাবে সংজ্ঞায়িত করতে হবে এবং AssignMessage নীতিতে flow.resource.name ভেরিয়েবল সেট করতে হবে।
quota উল্লিখিত সময়সীমার মধ্যে প্রতিটি অ্যাপের জন্য অনুমোদিত অনুরোধের সংখ্যা। প্রযোজ্য নয় না
quotaInterval কোটা মূল্যায়ন করার জন্য যতগুলি সময় একক ব্যবহার করা হয় প্রযোজ্য নয় না
quotaTimeUnit কোটা গণনা করার সময় ইউনিট (মিনিট, ঘণ্টা, দিন বা মাস)। প্রযোজ্য নয় না

API প্রোডাক্ট তৈরি করার জন্য নিম্নলিখিত উদাহরণে আরও বিস্তারিত বিবরণ দেওয়া হয়েছে।

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-এ স্কোপ সম্পূর্ণ ঐচ্ছিক। আরও সূক্ষ্ম-গ্রেনুলার অনুমোদনের জন্য আপনি স্কোপ ব্যবহার করতে পারেন। কোনও অ্যাপকে ইস্যু করা প্রতিটি কনজিউমার কী একটি 'মাস্টার স্কোপ'-এর সাথে যুক্ত থাকে। মাস্টার স্কোপ হল এই অ্যাপের জন্য অনুমোদিত সব API প্রোডাক্টের সব স্কোপের সেট। একাধিক API প্রোডাক্ট ব্যবহার করার জন্য অনুমোদিত অ্যাপের ক্ষেত্রে, মাস্টার স্কোপ হল সেইসব API প্রোডাক্টে সংজ্ঞায়িত সমস্ত স্কোপের ইউনিয়ন, যেগুলির জন্য কনজিউমার কী অনুমোদিত হয়েছে।

API প্রোডাক্ট দেখা

API ব্যবহার করে কোনও সংস্থার জন্য তৈরি API প্রোডাক্ট দেখতে, নিম্নলিখিত বিভাগগুলি দেখুন:

API ব্যবহার করে কীভাবে API প্রোডাক্ট দেখতে হয় তার একটি উদাহরণ নিচে দেওয়া হল:

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
}

API ব্যবহার করে ডেভেলপারদের রেজিস্টার করা

সব অ্যাপই কোনও না কোনও ডেভেলপার বা কোম্পানির মালিকানাধীন। তাই, কোনও অ্যাপ তৈরি করতে, আপনাকে প্রথমে ডেভেলপার বা কোম্পানি হিসেবে রেজিস্টার করতে হবে।

প্রোফাইল তৈরি করার মাধ্যমে কোনও সংস্থার সাথে ডেভেলপারদের রেজিস্টার করা হয়। মনে রাখবেন, প্রোফাইলে অন্তর্ভুক্ত ডেভেলপারের ইমেল আইডি Apigee Edge জুড়ে ডেভেলপারের অনন্য কী হিসেবে ব্যবহার করা হয়।

মনিটাইজেশন সাপোর্ট করার জন্য, ডেভেলপার তৈরি বা এডিট করার সময় আপনাকে অবশ্যই মনিটাইজেশন অ্যাট্রিবিউট নির্ধারণ করতে হবে। এছাড়াও, আপনি কাস্টম অ্যানালিটিক্স, কাস্টম নীতি প্রয়োগ ইত্যাদি ক্ষেত্রে ব্যবহারের জন্য অন্যান্য স্বেচ্ছাচারী অ্যাট্রিবিউট নির্ধারণ করতে পারবেন; এইসব স্বেচ্ছাচারী অ্যাট্রিবিউট Apigee Edge-এর মাধ্যমে ব্যাখ্যা করা হবে না,

যেমন, নিম্নলিখিত অনুরোধটি এমন একজন ডেভেলপারের প্রোফাইল রেজিস্টার করে যার ইমেল আইডি হল ntesla@theremin.com এবং ডেভেলপার তৈরি করুন 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"
        }

API ব্যবহার করে ডেভেলপার অ্যাপ রেজিস্টার করা

Apigee Edge-এ রেজিস্টার করা প্রতিটি অ্যাপ কোনও ডেভেলপার ও API প্রোডাক্টের সাথে যুক্ত থাকে। কোনও ডেভেলপারের হয়ে কোনও অ্যাপ রেজিস্টার করা হলে, Apigee Edge একটি "ক্রেডেনশিয়াল" (একটি কনজিউমার কী ও সিক্রেট পেয়ার) তৈরি করে যা অ্যাপটিকে শনাক্ত করে। তারপরে, অ্যাপটিকে অবশ্যই এই ক্রেডেনশিয়ালগুলি অ্যাপের সাথে যুক্ত API প্রোডাক্টের প্রতিটি অনুরোধের অংশ হিসেবে পাস করতে হবে।

নিম্নলিখিত অনুরোধটি ডেভেলপারের জন্য অ্যাপ রেজিস্টার করতে তৈরি করুন ডেভেলপার অ্যাপ API ব্যবহার করে যা আপনি উপরে তৈরি করেছেন: ntesla@theremin.com. কোনও অ্যাপ রেজিস্টার করার সময়, আপনি অ্যাপের নাম, 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"
}

API ব্যবহার করে এমন অ্যাপের জন্য কনজিউমার কী ম্যানেজ করা

অ্যাপের জন্য কনজিউমার কী (API কী) পান

অ্যাপের ক্রেডেনশিয়াল (API প্রোডাক্ট, কনজিউমার কী ও সিক্রেট) অ্যাপ প্রোফাইলের অংশ হিসেবে রিটার্ন করা হয়। কোনও সংস্থার অ্যাডমিনিস্ট্রেটর যেকোনও সময় কনজিউমার কী রিট্রিভ করতে পারেন।

অ্যাপ প্রোফাইলে কনজিউমার কী ও সিক্রেট, কনজিউমার কী-এর স্ট্যাটাস এবং কী-এর সাথে যুক্ত যেকোনও API প্রোডাক্টের ভ্যালু দেখানো হয়। অ্যাডমিন হিসেবে, আপনি যেকোনও সময় ডেভেলপার অ্যাপের জন্য কী সংক্রান্ত বিবরণ পান 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 প্রোডাক্ট যোগ করা

নতুন API প্রোডাক্ট যোগ করার জন্য কোনও অ্যাপ আপডেট করতে, আপনি আসলে কী API-তে API প্রোডাক্ট যোগ করুন ব্যবহার করে অ্যাপের কী -তে API প্রোডাক্ট যোগ করেন। আরও জানতে কী-তে API প্রোডাক্ট যোগ করুন দেখুন।

অ্যাপ কী-তে API প্রোডাক্ট যোগ করলে, যে অ্যাপে কী আছে সেটি API প্রোডাক্টে বান্ডেল করা API রিসোর্স অ্যাক্সেস করতে পারে। নিম্নলিখিত মেথড কল কোনও অ্যাপে নতুন 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"
 }

কনজিউমার কী অনুমোদন করা

অনুমোদনের ধরন ম্যানুয়াল হিসেবে সেট করলে, কোন ডেভেলপার API প্রোডাক্ট দ্বারা সুরক্ষিত রিসোর্স অ্যাক্সেস করতে পারবেন তা আপনি নিয়ন্ত্রণ করতে পারবেন। API প্রোডাক্টে key অনুমোদন manual হিসেবে সেট করা থাকলে, কনজিউমার কী স্পষ্টভাবে অনুমোদন করতে হবে। ডেভেলপার অ্যাপের নির্দিষ্ট কী অনুমোদন বা প্রত্যাহার করুন 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"
}

আরও জানতে ডেভেলপার অ্যাপের নির্দিষ্ট কী অনুমোদন বা প্রত্যাহার করা দেখুন।

কনজিউমার কীয়ের জন্য API প্রোডাক্ট অনুমোদন করা

API প্রোডাক্টের সাথে কনজিউমার কী-এর অ্যাসোসিয়েশনেরও একটি স্ট্যাটাস থাকে। API অ্যাক্সেস সফল হতে হলে, কনজিউমার কী অনুমোদিত হতে হবে এবং উপযুক্ত API প্রোডাক্টের জন্য কনজিউমার কী অনুমোদিত হতে হবে। API প্রোডাক্টের সাথে কনজিউমার কীয়ের অ্যাসোসিয়েশনকে কোনও ডেভেলপার অ্যাপের জন্য কীয়ের API প্রোডাক্ট অনুমোদন বা প্রত্যাহার করুন অ্যাপ API ব্যবহার করে অনুমোদন করা যেতে পারে:

$ 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 কমান্ড কোনও উত্তর রিটার্ন করে না। আরও জানতে ডেভেলপার অ্যাপের কী-এর জন্য API প্রোডাক্ট অনুমোদন বা প্রত্যাহার করা দেখুন।

গ্রাহক কী-এর জন্য API প্রোডাক্ট প্রত্যাহার করুন

API প্রোডাক্টের সাথে কোনও কনজিউমার কী-এর অ্যাসোসিয়েশন বাতিল করার প্রয়োজন হওয়ার পিছনে অনেক কারণ থাকতে পারে। ডেভেলপার পেমেন্ট না করলে, ট্রায়ালের মেয়াদ শেষ হয়ে গেলে অথবা কোনও অ্যাপকে একটি API প্রোডাক্ট থেকে অন্য API প্রোডাক্টে প্রমোট করা হলে, আপনাকে হয়ত কনজিউমার কী থেকে API প্রোডাক্ট সরাতে হবে।

API প্রোডাক্টের সাথে কোনও কনজিউমার কীয়ের অ্যাসোসিয়েশন প্রত্যাহার করতে, অনুমোদন করুন অথবা ডেভেলপার অ্যাপের নির্দিষ্ট কী প্রত্যাহার করুন API ব্যবহার করুন, এর জন্য ডেভেলপ অ্যাপের কনজিউমার কীয়ের বিরুদ্ধে প্রত্যাহার করার অ্যাকশন ব্যবহার করুন:

$ 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 কমান্ড কোনও উত্তর রিটার্ন করে না। আরও জানতে ডেভেলপার অ্যাপের নির্দিষ্ট কী অনুমোদন বা প্রত্যাহার করা দেখুন।

API প্রোডাক্ট সেটিংস প্রয়োগ করা

API প্রোডাক্ট প্রয়োগ করার জন্য, নিম্নলিখিত নীতিগুলির মধ্যে একটিকে API প্রক্সি ফ্লোতে অ্যাটাচ করতে হবে:

  • VerifyAPIKey: API key-এর রেফারেন্স নেয়, এটি যাচাই করে যে এটি একটি সঠিক অ্যাপকে প্রতিনিধিত্ব করে এবং API প্রোডাক্টের সাথে ম্যাচ করে। আরও জানতে API কী যাচাইকরণ সংক্রান্ত নীতি দেখুন।
  • OAuthV1, “VerifyAccessToken” অপারেশন: সই যাচাই করে, একটি OAuth 1.0a অ্যাক্সেস টোকেন ও “কনজিউমার কী” যাচাই করে এবং API প্রোডাক্টের সাথে অ্যাপ ম্যাচ করে। OAuth 1.0a-এর জন্য সহায়তা বন্ধ করে দেওয়া হয়েছে; বন্ধ করে দেওয়া ফিচার দেখুন।
  • OAuthV2, “VerifyAccessToken” অপারেশন: OAuth 2.0 অ্যাক্সেস টোকেন সঠিক কিনা তা যাচাই করে, টোকেনটি অ্যাপের সাথে ম্যাচ করে, অ্যাপটি সঠিক কিনা তা যাচাই করে এবং তারপরে অ্যাপটিকে API প্রোডাক্টের সাথে ম্যাচ করে। আরও জানতে OAuth হোম দেখুন।

নীতি ও API প্রোডাক্ট কনফিগার করা হয়ে গেলে, Apigee Edge নিম্নলিখিত প্রসেস এক্সিকিউট করে:

  1. Apigee Edge-এ একটি অনুরোধ আসে এবং সেটি উপযুক্ত API প্রক্সিতে রুট করা হয়।
  2. ক্লায়েন্টের দেওয়া API কী বা OAuth অ্যাক্সেস টোকেন যাচাই করার জন্য একটি নীতি প্রয়োগ করা হয়।
  3. Edge, API key বা অ্যাক্সেস টোকেনকে অ্যাপ প্রোফাইলে সমাধান করে।
  4. Edge, অ্যাপের সাথে যুক্ত API প্রোডাক্টের তালিকা (যদি থাকে) সমাধান করে।
  5. কোটা ভেরিয়েবল পূরণ করার জন্য প্রথম API প্রোডাক্টটি ব্যবহার করা হয়।
  6. API কী বা অ্যাক্সেস টোকেনের সাথে কোনও API প্রোডাক্ট না মিললে, অনুরোধটি বাতিল করা হয়।
  7. Edge, API প্রোডাক্ট সেটিংসের পাশাপাশি কোটা সেটিংসের উপর ভিত্তি করে URI-ভিত্তিক অ্যাক্সেস কন্ট্রোল (এনভায়রনমেন্ট, API প্রক্সি এবং URI পাথ) প্রয়োগ করে।