API ব্যবহার করে API প্রক্সি স্থাপন করুন

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

প্রতিটি প্রতিষ্ঠানের একটি স্বতন্ত্র সফটওয়্যার ডেভেলপমেন্ট লাইফসাইকেল (SDLC) থাকে। প্রায়শই ব্যাকএন্ড পরিষেবাগুলির জন্য ব্যবহৃত প্রক্রিয়াগুলির সাথে এপিআই প্রক্সি ডেপ্লয়মেন্টকে সিঙ্ক্রোনাইজ এবং সমন্বয় করা প্রয়োজন হয়।

এই টপিকে প্রদর্শিত Edge API মেথডগুলো আপনার প্রতিষ্ঠানের SDLC-তে API প্রক্সি ম্যানেজমেন্টকে একীভূত করতে ব্যবহার করা যেতে পারে। এই API-এর একটি সাধারণ ব্যবহার হলো এমন স্ক্রিপ্ট বা কোড লেখা, যা একটি বৃহত্তর স্বয়ংক্রিয় প্রক্রিয়ার অংশ হিসেবে API প্রক্সি ডেপ্লয় করে, অথবা এক এনভায়রনমেন্ট থেকে অন্য এনভায়রনমেন্টে API প্রক্সি মাইগ্রেট করে। এই প্রক্রিয়াটি অন্যান্য অ্যাপ্লিকেশনও ডেপ্লয় বা মাইগ্রেট করে থাকে।

Edge API আপনার SDLC (কিংবা অন্য কারও) সম্পর্কে কোনো পূর্বধারণা করে না। বরং, এটি এমন কিছু স্বতন্ত্র ফাংশন উন্মোচন করে, যা আপনার ডেভেলপমেন্ট টিম সমন্বয় করে আপনার API ডেভেলপমেন্ট লাইফসাইকেলকে স্বয়ংক্রিয় ও অপ্টিমাইজ করতে পারে।

সম্পূর্ণ তথ্যের জন্য, এজ এপিআই (Edge APIs) দেখুন।

Edge API ব্যবহার করার জন্য, আপনাকে কল করার সময় নিজেকে প্রমাণীকরণ করতে হবে। আপনি নিম্নলিখিত পদ্ধতিগুলোর যেকোনো একটি ব্যবহার করে এটি করতে পারেন:

  • OAuth2 (শুধুমাত্র পাবলিক ক্লাউডের জন্য)
  • SAML (পাবলিক এবং প্রাইভেট ক্লাউড)
  • বেসিক অথেন্টিকেশন (পাবলিক এবং প্রাইভেট ক্লাউডের জন্য সুপারিশ করা হয় না)

এই বিষয়টি এপিআই প্রক্সি ব্যবস্থাপনার জন্য ব্যবহৃত এপিআইগুলোর সেটের উপর আলোকপাত করে।

ভিডিও: একটি এপিআই (API) কীভাবে ডিপ্লয় করতে হয়, তা জানতে এই ছোট ভিডিওটি দেখুন।

এপিআই-এর সাথে মিথস্ক্রিয়া

নিম্নলিখিত ধাপগুলো আপনাকে এপিআইগুলোর সাথে সহজভাবে কাজ করার পদ্ধতি দেখিয়ে দেবে।

আপনার প্রতিষ্ঠানে থাকা API-গুলো তালিকাভুক্ত করুন।

আপনি আপনার প্রতিষ্ঠানের সমস্ত এপিআই প্রক্সি তালিকাভুক্ত করার মাধ্যমে শুরু করতে পারেন। ( EMAIL:PASSWORD এবং ORG_NAME জায়গায় নতুন এন্ট্রি বসাতে ভুলবেন না। নির্দেশাবলীর জন্য, ‘এজ এপিআই ব্যবহার করুন’ দেখুন।)

curl -u EMAIL:PASSWORD \
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis

নমুনা প্রতিক্রিয়া:

[ "weatherapi" ]

একটি এপিআই পান

আপনি আপনার প্রতিষ্ঠানের যেকোনো এপিআই প্রক্সিতে GET মেথড কল করতে পারেন। এই কলটি এপিআই প্রক্সিটির সমস্ত উপলব্ধ রিভিশনের একটি তালিকা ফেরত দেয়।

curl -u EMAIL:PASSWORD -H "Accept: application/json" \
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis/weatherapi

নমুনা প্রতিক্রিয়া:

{
  "name" : "weatherapi",
  "revision" : [ "1" ]
}

এই মেথডটি শুধুমাত্র এপিআই প্রক্সির নাম এবং এর সাথে যুক্ত রিভিশনের বিবরণ ফেরত দেয়, যার একটি নম্বর থাকে। এপিআই প্রক্সিগুলো একগুচ্ছ কনফিগারেশন ফাইল নিয়ে গঠিত। আপনি যখন কনফিগারেশন আপডেট করতে থাকেন, তখন রিভিশনগুলো তা পরিচালনা করার জন্য একটি সহজ ব্যবস্থা প্রদান করে। রিভিশনগুলো ক্রমানুসারে সংখ্যায়িত থাকে, যা আপনাকে আপনার এপিআই প্রক্সির পূর্ববর্তী রিভিশন ডেপ্লয় করার মাধ্যমে কোনো পরিবর্তন পূর্বাবস্থায় ফিরিয়ে আনতে সক্ষম করে। এছাড়াও, আপনি টেস্ট এনভায়রনমেন্টে সেই এপিআই প্রক্সির নতুন রিভিশন তৈরি করা চালিয়ে যাওয়ার পাশাপাশি প্রোডাকশন এনভায়রনমেন্টে এপিআই প্রক্সির একটি রিভিশন ডেপ্লয় করতে পারেন। যখন আপনি প্রস্তুত হবেন, তখন আপনি প্রোডাকশন এনভায়রনমেন্টে থাকা এপিআই প্রক্সির পূর্ববর্তী রিভিশনের উপর টেস্ট এনভায়রনমেন্ট থেকে আপনার এপিআই প্রক্সির উচ্চতর রিভিশনটিকে প্রাধান্য দিতে পারেন।

এই উদাহরণে, কেবল একটিই রিভিশন আছে, কারণ এপিআই প্রক্সিটি এইমাত্র তৈরি করা হয়েছে। একটি এপিআই প্রক্সি যখন পুনরাবৃত্তিমূলক কনফিগারেশন এবং ডেপ্লয়মেন্টের জীবনচক্রের মধ্য দিয়ে যায়, তখন এর রিভিশন নম্বর পূর্ণসংখ্যা দ্বারা বৃদ্ধি পায়। সরাসরি এপিআই কল ব্যবহার করে ডেপ্লয় করার সময়, আপনি চাইলে এপিআই প্রক্সির রিভিশন নম্বর বাড়াতে পারেন। কখনও কখনও ছোটখাটো পরিবর্তন করার সময়, আপনি হয়তো রিভিশন বাড়াতে চাইবেন না।

এপিআই সংস্করণ পান

এপিআই ভার্সন (উদাহরণস্বরূপ, api.company.com/v1 ) খুব কমই পরিবর্তন করা উচিত। যখন আপনি এপিআই ভার্সন বৃদ্ধি করেন, তখন এটি ডেভেলপারদের বোঝায় যে এপিআই দ্বারা উন্মুক্ত করা এক্সটার্নাল ইন্টারফেসের সিগনেচারে একটি উল্লেখযোগ্য পরিবর্তন হয়েছে।

এপিআই প্রক্সি রিভিশন হলো একটি বর্ধিত সংখ্যা যা একটি এপিআই প্রক্সি কনফিগারেশনের সাথে যুক্ত থাকে। এপিআই সার্ভিসেস আপনার কনফিগারেশনগুলোর রিভিশন বজায় রাখে, যাতে কোনো সমস্যা হলে আপনি কনফিগারেশনটি আগের অবস্থায় ফিরিয়ে আনতে পারেন। ডিফল্টরূপে, আপনি যখনই ' ইম্পোর্ট অ্যান এপিআই প্রক্সি ' এপিআই ব্যবহার করে একটি এপিআই প্রক্সি ইম্পোর্ট করেন, তখন এর রিভিশন স্বয়ংক্রিয়ভাবে বৃদ্ধি পায়। আপনি যদি কোনো এপিআই প্রক্সির রিভিশন বাড়াতে না চান, তাহলে 'আপডেট এপিআই প্রক্সি রিভিশন' এপিআই ব্যবহার করুন। আপনি যদি ডেপ্লয় করার জন্য মেভেন (Maven) ব্যবহার করেন, তাহলে মেভেন প্লাগইন রিডমি- তে বর্ণিত clean বা update অপশনগুলো ব্যবহার করুন।

উদাহরণস্বরূপ, বিস্তারিত দেখার জন্য আপনি এপিআই প্রক্সি রিভিশন ১-এর GET মেথডটি কল করতে পারেন।

curl -u EMAIL:PASSWORD -H "Accept:application/json" \
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis/weatherapi/revisions/1

নমুনা প্রতিক্রিয়া

{
  "configurationVersion" : {
    "majorVersion" : 4,
    "minorVersion" : 0
  },
  "contextInfo" : "Revision 1 of application weatherapi, in organization {org_name}",
  "createdAt" : 1343178905169,
  "createdBy" : "andrew@apigee.com",
  "lastModifiedAt" : 1343178905169,
  "lastModifiedBy" : "andrew@apigee.com",
  "name" : "weatherapi",
  "policies" : [ ],
  "proxyEndpoints" : [ ],
  "resources" : [ ],
  "revision" : "1",
  "targetEndpoints" : [ ],
  "targetServers" : [ ],
  "type" : "Application"
}

এই এপিআই প্রক্সি কনফিগারেশন উপাদানগুলো এপিআই প্রক্সি কনফিগারেশন রেফারেন্সে বিস্তারিতভাবে নথিভুক্ত করা আছে।

একটি পরিবেশে API স্থাপন করা

আপনার এপিআই প্রক্সি একবার অনুরোধ সঠিকভাবে গ্রহণ ও ফরওয়ার্ড করার জন্য কনফিগার করা হয়ে গেলে, আপনি এটিকে এক বা একাধিক এনভায়রনমেন্টে ডেপ্লয় করতে পারেন। সাধারণত, আপনি test এনভায়রনমেন্টে এপিআই প্রক্সির উপর বারবার কাজ করেন এবং তারপর, প্রস্তুত হয়ে গেলে, এপিআই প্রক্সির সেই সংস্করণটিকে prod উন্নীত করেন । প্রায়শই দেখা যায় যে, টেস্ট এনভায়রনমেন্টে একটি এপিআই প্রক্সির অনেক বেশি সংস্করণ থাকে, এর প্রধান কারণ হলো প্রোডাকশন এনভায়রনমেন্টে আপনাকে অনেক কম পুনরাবৃত্তি করতে হয়।

একটি এপিআই প্রক্সি কোনো এনভায়রনমেন্টে ডেপ্লয় না করা পর্যন্ত সেটিকে কল করা যায় না। একবার আপনি প্রোডাকশনে এপিআই প্রক্সি রিভিশনটি ডেপ্লয় করে ফেললে, তখন আপনি prod ইউআরএলটি বাইরের ডেভেলপারদের কাছে পাবলিশ করতে পারবেন।

পরিবেশ তালিকাভুক্ত করার উপায়

Apigee Edge-এর প্রতিটি অর্গানাইজেশনে অন্তত দুটি এনভায়রনমেন্ট থাকে: test এবং prod । এই পার্থক্যটি ইচ্ছাধীন। এর উদ্দেশ্য হলো, বাইরের ডেভেলপারদের জন্য আপনার এপিআই প্রক্সি উন্মুক্ত করার আগে, সেটি সঠিকভাবে কাজ করছে কি না তা যাচাই করার জন্য আপনাকে একটি ক্ষেত্র প্রদান করা।

প্রতিটি এনভায়রনমেন্ট আসলে একটি নেটওয়ার্ক অ্যাড্রেস মাত্র, যা আপনাকে আপনার ব্যবহৃত এপিআই প্রক্সি এবং রানটাইমে অ্যাপ দ্বারা ব্যবহৃত প্রক্সিগুলোর মধ্যে ট্র্যাফিক আলাদা করতে সক্ষম করে।

এনভায়রনমেন্ট ডেটা এবং রিসোর্সের পৃথকীকরণও প্রদান করে। উদাহরণস্বরূপ, আপনি টেস্ট এবং প্রোড-এ আলাদা ক্যাশে সেট আপ করতে পারেন, যেগুলো শুধুমাত্র সেই এনভায়রনমেন্টে চলমান এপিআই প্রক্সি দ্বারা অ্যাক্সেস করা যাবে।

একটি প্রতিষ্ঠানের পরিবেশ দেখুন

curl -u EMAIL:PASSWORD \
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments

নমুনা প্রতিক্রিয়া

[ "test", "prod" ]

স্থাপনাগুলি অন্বেষণ করুন

ডেপ্লয়মেন্ট হলো কোনো একটি পরিবেশে স্থাপন করা এপিআই প্রক্সির একটি সংস্করণ। ডেপ্লয়েড অবস্থায় থাকা একটি এপিআই প্রক্সি সেই পরিবেশের জন্য <VirtualHost> এলিমেন্টে সংজ্ঞায়িত ঠিকানাগুলিতে নেটওয়ার্কের মাধ্যমে অ্যাক্সেসযোগ্য থাকে।

এপিআই প্রক্সি স্থাপন করা

এপিআই প্রক্সিগুলো ডেপ্লয় না করা পর্যন্ত কল করা যায় না। এপিআই সার্ভিসেস এমন RESTful এপিআই উন্মুক্ত করে যা ডেপ্লয়মেন্ট প্রক্রিয়ার উপর নিয়ন্ত্রণ প্রদান করে।

একটি পরিবেশে একই সময়ে একটি এপিআই প্রক্সির কেবল একটি সংস্করণই স্থাপন করা যায়। তাই, স্থাপন করা সংস্করণটিকে অস্থাপন করতে হবে। নতুন বান্ডেলটি একটি নতুন সংস্করণ হিসেবে স্থাপন করা হবে, নাকি এটি বিদ্যমান সংস্করণটিকে ওভাররাইট করবে, তা আপনি নিয়ন্ত্রণ করতে পারেন।

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

প্রথমে বিদ্যমান রিভিশনটি আনডিপ্লয় করুন। আপনি যে এপিআই প্রক্সিটি আনডিপ্লয় করতে চান তার এনভায়রনমেন্টের নাম এবং রিভিশন নম্বর উল্লেখ করুন:

curl -X DELETE \
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments/ENV_NAME/apis/API_NAME/revisions/REVISION_NUMBER/deployments \
  -u EMAIL:PASSWORD

তারপর নতুন সংস্করণটি স্থাপন করুন। এপিআই প্রক্সির নতুন সংস্করণটি অবশ্যই আগে থেকে বিদ্যমান থাকতে হবে:

curl -X POST -H "Content-type:application/x-www-form-urlencoded" \
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments/ENV_NAME/apis/API_NAME/revisions/REVISION_NUMBER/deployments \
  -u EMAIL:PASSWORD

নির্বিঘ্ন স্থাপন (শূন্য ডাউনটাইম)

ডিপ্লয়মেন্ট চলাকালীন ডাউনটাইমের সম্ভাবনা কমাতে, ডিপ্লয়মেন্ট মেথডে override প্যারামিটারটি ব্যবহার করুন এবং এটিকে true তে সেট করুন।

আপনি একটি এপিআই প্রক্সির রিভিশনের উপর আরেকটি রিভিশন ডেপ্লয় করতে পারবেন না। প্রথমটি অবশ্যই সর্বদা আনডেপ্লয় করতে হবে। override true সেট করার মাধ্যমে, আপনি নির্দেশ করেন যে এপিআই প্রক্সির একটি নতুন রিভিশন বর্তমানে ডেপ্লয় করা রিভিশনের উপর ডেপ্লয় করা হবে। এর ফলে ডেপ্লয়মেন্টের ক্রমটি উল্টে যায়—নতুন রিভিশনটি ডেপ্লয় করা হয়, এবং ডেপ্লয়মেন্ট সম্পূর্ণ হলে, ইতিমধ্যে ডেপ্লয় করা রিভিশনটি আনডেপ্লয় করা হয়।

নিম্নলিখিত উদাহরণটি ফর্ম প্যারামিটার হিসাবে পাস করার মাধ্যমে override মান সেট করে:

curl -X POST -H "Content-type:application/x-www-form-urlencoded" \
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/e/ENV_NAME/apis/API_NAME/revisions/REVISION_NUMBER/deployments" \
  -d "override=true" \
  -u EMAIL:PASSWORD

আপনি delay প্যারামিটার সেট করে ডেপ্লয়মেন্টকে আরও অপ্টিমাইজ করতে পারেন। delay প্যারামিটারটি সেকেন্ডে একটি সময় ব্যবধান নির্দিষ্ট করে, যার আগে পূর্ববর্তী রিভিশনটি আনডেপ্লয় করা উচিত। এর ফলে, চলমান ট্রানজ্যাকশনগুলো সম্পন্ন হওয়ার জন্য একটি নির্দিষ্ট সময় পায়, এবং এরপরই তাদের ট্রানজ্যাকশন প্রসেসকারী এপিআই প্রক্সিটি আনডেপ্লয় হয়ে যায়। override=true এবং delay প্যারামিটার সেট করা থাকলে যা ঘটে তা নিচে দেওয়া হলো:

  • সংস্করণ ১ অনুরোধগুলো প্রক্রিয়া করছে।
  • সংস্করণ ২ সমান্তরালভাবে স্থাপন করা হচ্ছে।
  • যখন রিভিশন ২ সম্পূর্ণরূপে ডেপ্লয় করা হয়, তখন নতুন ট্র্যাফিক রিভিশন ২-এ পাঠানো হয়। রিভিশন ১-এ কোনো নতুন ট্র্যাফিক পাঠানো হয় না।
  • তবে, রিভিশন ১ তখনও বিদ্যমান লেনদেনগুলো প্রসেস করতে পারে। delay প্যারামিটার (যেমন, ১৫ সেকেন্ড) সেট করার মাধ্যমে, আপনি রিভিশন ১-কে বিদ্যমান লেনদেনগুলো প্রসেস করা শেষ করার জন্য ১৫ সেকেন্ড সময় দেন।
  • বিলম্বের সময়কাল শেষে, রিভিশন ১ আনডিপ্লয় করা হয়।
curl -X POST -H "Content-type:application/x-www-form-urlencoded" \
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/e/ENV_NAME/apis/API_NAME/revisions/REVISION_NUMBER/deployments?delay=15" \
  -d "override=true" \
  -u EMAIL:PASSWORD
কোয়েরি প্যারামিটার বর্ণনা
override

ডিফল্ট মান হলো false (স্বাভাবিক ডেপ্লয়মেন্ট আচরণ: প্রথমে বিদ্যমান রিভিশনটি আনডেপ্লয় করা হয়, তারপর নতুন রিভিশনটি ডেপ্লয় করা হয়)।

সাধারণ ডেপ্লয়মেন্ট আচরণকে অগ্রাহ্য করে নির্বিঘ্ন ডেপ্লয়মেন্ট নিশ্চিত করতে এটিকে ' true সেট করুন। নতুন রিভিশনটি ডেপ্লয় হওয়ার সময়েও বিদ্যমান রিভিশনটি ডেপ্লয়েড থাকে। নতুন রিভিশনটি ডেপ্লয় হয়ে গেলে, পুরানো রিভিশনটি আনডেপ্লয়েড হয়ে যায়। আনডেপ্লয়মেন্ট কখন ঘটবে তা নিয়ন্ত্রণ করতে এটি delay প্যারামিটারের সাথে একত্রে ব্যবহার করুন।

delay

বিদ্যমান রিভিশনটি আনডিপ্লয় করার আগে সেটিতে ট্রানজ্যাকশন প্রসেসিং সম্পন্ন হতে দেওয়ার জন্য—এবং 502 Bad Gateway বা 504 Gateway Timeout errors সম্ভাবনা দূর করতে—এই প্যারামিটারটি সেই পরিমাণ সেকেন্ডে সেট করুন, যত সেকেন্ড আপনি আনডিপ্লয়মেন্ট বিলম্বিত করতে চান। আপনি যত খুশি সেকেন্ড সেট করতে পারেন, এর কোনো সীমা নেই এবং বেশি সেকেন্ড সেট করলে পারফরম্যান্সে কোনো প্রভাব পড়ে না। এই বিলম্বের সময়, পুরোনো রিভিশনে কোনো নতুন ট্র্যাফিক পাঠানো হয় না।

ডিফল্ট মান হলো ০ (শূন্য) সেকেন্ড। যখন override ট্রু' সেট করা থাকে এবং delay ০ হয়, তখন নতুন রিভিশনটি ডিপ্লয় করার সাথে সাথেই বিদ্যমান রিভিশনটি আনডিপ্লয় করা হয়। ঋণাত্মক মানকেও ০ (শূন্য) সেকেন্ড হিসেবে গণ্য করা হয়।

যখন একটি delay সাথে override=true ব্যবহার করা হয়, তখন ডেপ্লয়মেন্টের সময় HTTP 5XX রেসপন্সগুলো বাদ দেওয়া যেতে পারে। এর কারণ হলো, উভয় এপিআই প্রক্সি রিভিশন একই সাথে ডেপ্লয় করা হবে এবং ডিলে-এর পরে পুরোনো রিভিশনটি আনডেপ্লয় করা হবে।

একটি এপিআই রিভিশনের সমস্ত ডেপ্লয়মেন্ট দেখুন

কখনও কখনও একটি এপিআই প্রক্সির বর্তমানে ডেপ্লয় করা সমস্ত রিভিশনের একটি তালিকা সংগ্রহ করার প্রয়োজন হয়।

curl https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis/weatherapi/revisions/1/deployments \
  -u EMAIL:PASSWORD
{
  "aPIProxy" : "weatherapi",
  "environment" : [ {
    "configuration" : {
      "basePath" : "",
      "steps" : [ ]
    },
    "name" : "test",
    "server" : [ {
      "status" : "deployed",
      "type" : [ "message-processor" ],
      "uUID" : "90096dd1-1019-406b-9f42-fbb80cd01200"
    }, {
      "status" : "deployed",
      "type" : [ "message-processor" ],
      "uUID" : "7d6e2eb1-581a-4db0-8045-20d9c3306549"
    }, {
      "status" : "deployed",
      "type" : [ "router" ],
      "uUID" : "1619e2d7-c822-45e0-9f97-63882fb6a805"
    }, {
      "status" : "deployed",
      "type" : [ "router" ],
      "uUID" : "8a5f3d5f-46f8-4e99-b4cc-955875c8a8c8"
    } ],
    "state" : "deployed"
  } ],
  "name" : "1",
  "organization" : "org_name"
}

উপরের প্রতিক্রিয়াটিতে Apigee Edge-এর অভ্যন্তরীণ অবকাঠামোর জন্য নির্দিষ্ট অনেক বৈশিষ্ট্য রয়েছে। আপনি যদি অন-প্রেমিস Apigee Edge ব্যবহার না করেন, তবে এই সেটিংস পরিবর্তন করতে পারবেন না।

রেসপন্সে থাকা গুরুত্বপূর্ণ প্রপার্টিগুলো হলো organization , environment , aPIProxy , name এবং state । এই প্রপার্টিগুলোর মান পর্যালোচনা করে আপনি নিশ্চিত করতে পারেন যে, কোনো একটি এনভায়রনমেন্টে এপিআই প্রক্সির একটি নির্দিষ্ট রিভিশন ডেপ্লয় করা আছে।

টেস্ট এনভায়রনমেন্টে সমস্ত ডেপ্লয়মেন্ট দেখুন

আপনি নিম্নলিখিত কলটি ব্যবহার করে একটি নির্দিষ্ট এনভায়রনমেন্টের ডেপ্লয়মেন্ট স্ট্যাটাসও (বর্তমানে ডেপ্লয় করা এপিআই প্রক্সির রিভিশন নম্বর সহ) জানতে পারেন:

curl -u EMAIL:PASSWORD
  https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments/test/deployments

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

আপনার প্রতিষ্ঠানের সমস্ত ডেপ্লয়মেন্ট দেখুন

সমস্ত এনভায়রনমেন্টে বর্তমানে ডেপ্লয় করা সমস্ত এপিআই প্রক্সির রিভিশনগুলোর তালিকা পেতে, নিম্নলিখিত এপিআই মেথডটি ব্যবহার করুন:

curl https://api.enterprise.apigee.com/v1/o/ORG_NAME/deployments \
  -u EMAIL:PASSWORD

এটি সমস্ত পরিবেশে স্থাপন করা সমস্ত এপিআই প্রক্সির জন্য উপরের মতোই একই ফলাফল প্রদান করে।

এপিআইটি RESTful হওয়ায়, আপনি একই রিসোর্সের বিপরীতে JSON বা XML পেলোডসহ POST মেথড ব্যবহার করে সহজেই একটি এপিআই প্রক্সি তৈরি করতে পারেন।

আপনার এপিআই প্রক্সির জন্য একটি প্রোফাইল তৈরি করা হয়েছে। একটি এপিআই প্রক্সির ডিফল্ট উপস্থাপনা হলো জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন (JSON)। নিচে উপরের POST অনুরোধটির ডিফল্ট JSON প্রতিক্রিয়া দেওয়া হলো, যা weatherapi নামের একটি এপিআই প্রক্সি তৈরি করেছে। প্রোফাইলের প্রতিটি উপাদানের বিবরণ নিচে দেওয়া হলো:

{
  "configurationVersion" : {
    "majorVersion" : 4,
    "minorVersion" : 0
  },
  "contextInfo" : "Revision 1 of application weatherapi, in organization {org_name}",
  "createdAt" : 1357172145444,
  "createdBy" : "you@yourcompany.com",
  "displayName" : "weatherapi",
  "lastModifiedAt" : 1357172145444,
  "lastModifiedBy" : "you@yourcompany.com",
  "name" : "weatherapi",
  "policies" : [ ],
  "proxyEndpoints" : [ ],
  "resources" : [ ],
  "revision" : "1",
  "targetEndpoints" : [ ],
  "targetServers" : [ ],
  "type" : "Application"
}

যে এপিআই প্রক্সি প্রোফাইলটি তৈরি হয়, তা একটি এপিআই প্রক্সির সম্পূর্ণ কাঠামো প্রদর্শন করে:

  • APIProxy revision : এপিআই সার্ভিসেস দ্বারা পরিচালিত এপিআই প্রক্সি কনফিগারেশনের ক্রমিক সংখ্যাযুক্ত সংস্করণ।
  • APIProxy name : API প্রক্সির অনন্য নাম
  • ConfigurationVersion : এপিআই প্রক্সি কনফিগারেশনটি যে এপিআই সার্ভিস ভার্সনের সাথে সামঞ্জস্যপূর্ণ
  • CreatedAt : এপিআই প্রক্সি তৈরি করার সময়, ইউনিক্স সময় অনুসারে বিন্যস্ত।
  • CreatedBy : যে Apigee Edge ব্যবহারকারী এপিআই প্রক্সিটি তৈরি করেছেন তার ইমেল ঠিকানা।
  • DisplayName : এপিআই প্রক্সির জন্য একটি ব্যবহার-বান্ধব নাম
  • LastModifiedAt : এপিআই প্রক্সি তৈরি করার সময়, ইউনিক্স সময় অনুসারে বিন্যস্ত।
  • LastModifiedBy : যে Apigee Edge ব্যবহারকারী API প্রক্সিটি তৈরি করেছেন তার ইমেল ঠিকানা।
  • Policies : এই এপিআই প্রক্সিতে যুক্ত করা নীতিমালার তালিকা
  • ProxyEndpoints : নামযুক্ত ProxyEndpoints-এর একটি তালিকা
  • Resources : এই এপিআই প্রক্সিতে কার্যকর করার জন্য উপলব্ধ রিসোর্সসমূহের (জাভাস্ক্রিপ্ট, পাইথন, জাভা, এক্সএসএলটি) একটি তালিকা।
  • TargetServers : নামযুক্ত টার্গেটসার্ভারসমূহের একটি তালিকা (যা ম্যানেজমেন্ট এপিআই ব্যবহার করে তৈরি করা যায়), যা লোড ব্যালান্সিংয়ের উদ্দেশ্যে উন্নত কনফিগারেশনে ব্যবহৃত হয়।
  • TargetEndpoints : নামযুক্ত টার্গেটএন্ডপয়েন্টগুলোর একটি তালিকা

লক্ষ্য করুন যে, উপরে বর্ণিত সাধারণ POST পদ্ধতি ব্যবহার করে তৈরি করা API প্রক্সি কনফিগারেশনের অনেকগুলো উপাদানই খালি থাকে। পরবর্তী বিষয়গুলোতে, আপনি শিখবেন কীভাবে একটি API প্রক্সির মূল উপাদানগুলো যোগ এবং কনফিগার করতে হয়।

আপনি এপিআই প্রক্সি কনফিগারেশন রেফারেন্স- এও এই কনফিগারেশন উপাদানগুলো সম্পর্কে পড়তে পারেন।

এপিআই-এর বিরুদ্ধে স্ক্রিপ্টিং

গিটহাবে উপলব্ধ নমুনা এপিআই প্রক্সিগুলো ব্যবহার করে এমন শেল স্ক্রিপ্ট পাওয়া যায় যা এপিজি ডিপ্লয় টুলকে র‍্যাপ করে। যদি কোনো কারণে আপনি পাইথন ডিপ্লয় টুল ব্যবহার করতে না পারেন, তবে আপনি সরাসরি এপিআই কল করতে পারেন। নিচের নমুনা স্ক্রিপ্টগুলোতে উভয় পদ্ধতিই দেখানো হয়েছে।

ডিপ্লয় টুল মোড়ানো

প্রথমে, নিশ্চিত করুন যে আপনার স্থানীয় পরিবেশে পাইথন ডিপ্লয় টুলটি উপলব্ধ আছে।

এরপর আপনার ক্রেডেনশিয়ালগুলো রাখার জন্য একটি ফাইল তৈরি করুন। আপনার লেখা ডেপ্লয়মেন্ট স্ক্রিপ্টগুলো এই সেটিংসগুলো ইম্পোর্ট করবে, যা আপনাকে আপনার অ্যাকাউন্টের ক্রেডেনশিয়ালগুলো কেন্দ্রীয়ভাবে পরিচালনা করতে সাহায্য করবে। এপিআই প্ল্যাটফর্ম স্যাম্পলে, এই ফাইলটির নাম setenv.sh

#!/bin/bash

org="Your ORG on enterprise.apigee.com"
username="Your USERNAME on enterprise.apigee.com"

# While testing, it's not necessary to change the setting below
env="test"
# Change the value below only if you have an on-premise deployment
url="https://api.enterprise.apigee.com"
# Change the value below only if you have a custom domain
api_domain="apigee.net"

export org=$org
export username=$username
export env=$env
export url=$url
export api_domain=$api_domain

উপরের ফাইলটি ডিপ্লয় টুলকে আবৃতকারী শেল স্ক্রিপ্টগুলোর জন্য আপনার সমস্ত সেটিংস উপলব্ধ করে।

এখন একটি শেল স্ক্রিপ্ট তৈরি করুন যা ওই সেটিংসগুলো ইম্পোর্ট করবে এবং সেগুলো ব্যবহার করে ডিপ্লয় টুলটিকে কল করবে। (উদাহরণস্বরূপ Apigee API প্ল্যাটফর্মের নমুনাগুলো দেখুন।)

#!/bin/bash

source path/to/setenv.sh

echo "Enter your password for the Apigee Enterprise organization $org, followed by [ENTER]:"

read -s password

echo Deploying $proxy to $env on $url using $username and $org

path/to/deploy.py -n {api_name} -u $username:$password -o $org -h $url -e $env -p / -d path/to/apiproxy

আপনার কাজকে আরও সহজ করার জন্য, এপিআই (API) কল ও পরীক্ষা করার জন্য নিম্নরূপ একটি স্ক্রিপ্টও তৈরি করুন:

#!/bin/bash

echo Using org and environment configured in /setup/setenv.sh

source /path/to/setenv.sh

set -x

curl "http://$org-$env.apigee.net/{api_basepath}"

সরাসরি এপিআই কল করা

এপিআই প্রক্সি আপলোড এবং ডেপ্লয় করার প্রক্রিয়াটি স্বয়ংক্রিয় করতে সহজ শেল স্ক্রিপ্ট লেখা উপকারী হতে পারে।

নিচের স্ক্রিপ্টটি সরাসরি ম্যানেজমেন্ট এপিআই-কে কল করে। এটি আপনার আপডেট করা এপিআই প্রক্সির বিদ্যমান সংস্করণটিকে আনডিপ্লয় করে, /apiproxy ডিরেক্টরি থেকে আপনার প্রক্সি কনফিগারেশন ফাইলগুলোসহ একটি জিপ ফাইল তৈরি করে এবং তারপর কনফিগারেশনটি আপলোড, ইম্পোর্ট ও ডিপ্লয় করে।

#!/bin/bash

#This sets the name of the API proxy and the basepath where the API will be available
api=api

source /path/to/setenv.sh

echo Delete the DS_store file on OSX

echo find . -name .DS_Store -print0 | xargs -0 rm -rf
find . -name .DS_Store -print0 | xargs -0 rm -rf

echo "Enter your password for the Apigee Enterprise organization $org, followed by [ENTER]:"

read -s password

echo Undeploy and delete the previous revision

# Note that you need to explicitly update the revision to be undeployed.
# One benefit of the Python deploy tool is that it manages this for you.

curl -k -u $username:$password "$url/v1/o/$org/e/$env/apis/$api/revisions/1/deployments" -X DELETE

curl -k -u $username:$password -X DELETE "$url/v1/o/$org/apis/$api/revisions/1"

rm -rf $api.zip

echo Create the API proxy bundle and deploy

zip -r $api.zip apiproxy

echo Import the new revision to $env environment 

curl -k -v -u $username:$password "$url/v1/o/$org/apis?action=import&name=$api" -T $api.zip -H "Content-Type: application/octet-stream" -X POST

echo Deploy the new revision to $env environment 

curl -k -u $username:$password "$url/v1/o/$org/e/$env/apis/$api/revisions/1/deployments" -X POST