আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
এই নথির উদ্দেশ্য হল Apigee Edge-এর সাথে বিকাশের জন্য মান এবং সর্বোত্তম অনুশীলনের একটি সেট প্রদান করা। এখানে যে বিষয়গুলি কভার করা হয়েছে সেগুলির মধ্যে রয়েছে ডিজাইন, কোডিং, নীতির ব্যবহার, পর্যবেক্ষণ এবং ডিবাগিং৷ সফল API প্রোগ্রাম বাস্তবায়নের জন্য Apigee-এর সাথে কাজ করা ডেভেলপারদের অভিজ্ঞতার মাধ্যমে তথ্য সংগ্রহ করা হয়েছে। এটি একটি জীবন্ত নথি এবং সময়ে সময়ে আপডেট করা হবে।
এখানে নির্দেশিকা ছাড়াও, আপনি Apigee Edge Antipatterns Community পোস্টটিও দরকারী খুঁজে পেতে পারেন।
উন্নয়ন মান
মন্তব্য এবং ডকুমেন্টেশন
- ProxyEndpoint এবং TargetEndpoint কনফিগারেশনে ইনলাইন মন্তব্য প্রদান করুন। মন্তব্যগুলি একটি প্রবাহের জন্য পাঠযোগ্যতা বাড়ায়, বিশেষ করে যেখানে নীতি ফাইলের নামগুলি প্রবাহের অন্তর্নিহিত কার্যকারিতা প্রকাশ করার জন্য যথেষ্ট বর্ণনামূলক নয়।
- মন্তব্য দরকারী করুন. সুস্পষ্ট মন্তব্য এড়িয়ে চলুন.
- সামঞ্জস্যপূর্ণ ইন্ডেন্টেশন, ব্যবধান, উল্লম্ব প্রান্তিককরণ ইত্যাদি ব্যবহার করুন।
ফ্রেমওয়ার্ক-স্টাইল কোডিং
ফ্রেমওয়ার্ক-স্টাইল কোডিং স্থানীয় উন্নয়ন পরিবেশ জুড়ে পুনঃব্যবহারের জন্য আপনার নিজস্ব সংস্করণ নিয়ন্ত্রণ সিস্টেমে API প্রক্সি সংস্থান সংরক্ষণ করে। উদাহরণস্বরূপ, একটি নীতি পুনঃব্যবহার করতে, এটিকে উৎস নিয়ন্ত্রণে সংরক্ষণ করুন যাতে বিকাশকারীরা এটির সাথে সিঙ্ক করতে পারে এবং এটি তাদের নিজস্ব প্রক্সি বিকাশ পরিবেশে ব্যবহার করতে পারে৷
- DRY সক্ষম করতে ("নিজেকে পুনরাবৃত্তি করবেন না"), যেখানে সম্ভব, নীতি কনফিগারেশন এবং স্ক্রিপ্টগুলিকে বিশেষায়িত, পুনঃব্যবহারযোগ্য ফাংশনগুলি প্রয়োগ করা উচিত৷ উদাহরণস্বরূপ, অনুরোধ বার্তাগুলি থেকে কোয়েরি প্যারামিটার বের করার জন্য একটি উত্সর্গীকৃত নীতিকে বলা যেতে পারে
ExtractVariables.ExtractRequestParameters
। CORS হেডার ইনজেক্ট করার জন্য একটি নিবেদিত নীতিকেAssignMessage.SetCORSHeaders
বলা যেতে পারে। সেই নীতিগুলি আপনার সোর্স কন্ট্রোল সিস্টেমে সংরক্ষণ করা যেতে পারে এবং প্রতিটি API প্রক্সিতে যোগ করা যেতে পারে যা আপনাকে অপ্রয়োজনীয় (এবং তাই কম পরিচালনাযোগ্য) কনফিগারেশন তৈরি করার প্রয়োজন ছাড়াই প্যারামিটার বের করতে বা CORS হেডার সেট করতে হবে। - API প্রক্সিগুলি থেকে অব্যবহৃত নীতি এবং সংস্থানগুলি (জাভাস্ক্রিপ্ট, জাভা, এক্সএসএলটি, ইত্যাদি) পরিষ্কার করুন, বিশেষত বড় সংস্থানগুলি যেগুলি আমদানি এবং প্রক্রিয়াগুলিকে ধীর করে দেওয়ার সম্ভাবনা রাখে৷
নামকরণের নিয়মাবলী
- নীতির
name
বৈশিষ্ট্য এবং XML নীতি ফাইলের নাম অবশ্যই অভিন্ন হতে হবে। - স্ক্রিপ্ট এবং সার্ভিসকলআউট নীতির
name
বৈশিষ্ট্য এবং সংস্থান ফাইলের নাম অভিন্ন হওয়া উচিত। -
DisplayName
এমন কাউকে সঠিকভাবে নীতির ফাংশন বর্ণনা করতে হবে যিনি আগে কখনো সেই API প্রক্সির সাথে কাজ করেননি। - তাদের ফাংশন অনুযায়ী নাম নীতি. Apigee সুপারিশ করে যে আপনি আপনার নীতিগুলির জন্য একটি সামঞ্জস্যপূর্ণ নামকরণের নিয়ম প্রতিষ্ঠা করুন৷ উদাহরণ স্বরূপ, ড্যাশ দ্বারা বিভক্ত বর্ণনামূলক শব্দের একটি ক্রম অনুসরণ করে ছোট উপসর্গ ব্যবহার করুন। উদাহরণস্বরূপ, AssignMessage নীতির জন্য
AM-xxx
। এপিজিলিন্ট টুলটিও দেখুন। - রিসোর্স ফাইলের জন্য সঠিক এক্সটেনশন, জাভাস্ক্রিপ্টের জন্য
.js
, পাইথনের জন্য.py
এবং Java JAR ফাইলের জন্য.jar
ব্যবহার করুন। - পরিবর্তনশীল নামগুলি সামঞ্জস্যপূর্ণ হওয়া উচিত। আপনি যদি ক্যামেলকেস বা আন্ডার_স্কোরের মতো একটি শৈলী বেছে নেন, তাহলে সমগ্র API প্রক্সি জুড়ে এটি ব্যবহার করুন।
- পরিবর্তনশীল উপসর্গ ব্যবহার করুন, যেখানে সম্ভব, ভেরিয়েবলগুলিকে তাদের উদ্দেশ্যের উপর ভিত্তি করে সংগঠিত করতে, উদাহরণস্বরূপ,
Consumer.username
এবংConsumer.password
।
API প্রক্সি ডেভেলপমেন্ট
প্রাথমিক নকশা বিবেচনা
- RESTful API ডিজাইনের নির্দেশনার জন্য, ই-বুক ডাউনলোড করুন Web API ডিজাইন: The Missing Link ।
- API প্রক্সি তৈরি করতে যেখানেই সম্ভব Apigee Edge নীতি এবং কার্যকারিতা লাভ করুন। JavaScript, Java, বা Python রিসোর্সে সমস্ত প্রক্সি লজিক কোডিং এড়িয়ে চলুন।
- একটি সংগঠিত পদ্ধতিতে প্রবাহ নির্মাণ. একাধিক প্রবাহ, প্রতিটি একটি একক শর্ত সহ, একই প্রিফ্লো এবং পোস্টফ্লোতে একাধিক শর্তযুক্ত সংযুক্তির চেয়ে পছন্দনীয়।
- একটি 'ফেলসেফ' হিসাবে,
/
এর একটি ProxyEndpoint BasePath সহ একটি ডিফল্ট API প্রক্সি তৈরি করুন। এটি একটি ডেভেলপার সাইটে বেস API অনুরোধগুলি পুনঃনির্দেশ করতে, একটি কাস্টম প্রতিক্রিয়া ফেরত দিতে, বা ডিফল্টmessaging.adaptors.http.flow.ApplicationNotFound
ফেরত দেওয়ার চেয়ে আরও কার্যকর অন্য কাজ সম্পাদন করতে ব্যবহার করা যেতে পারে।
- কংক্রিট ইউআরএল থেকে টার্গেটএন্ডপয়েন্ট কনফিগারেশন ডিকপল করতে TargetServer রিসোর্স ব্যবহার করুন, পরিবেশ জুড়ে প্রচার সমর্থন করে।
ব্যাকএন্ড সার্ভার জুড়ে লোড ব্যালেন্সিং দেখুন। - আপনার যদি একাধিক RouteRules থাকে, তাহলে 'ডিফল্ট' হিসেবে একটি তৈরি করুন, অর্থাৎ কোনো শর্ত ছাড়াই একটি RouteRule হিসেবে। শর্তসাপেক্ষ রুটের তালিকায় ডিফল্ট RouteRule সর্বশেষ সংজ্ঞায়িত করা হয়েছে তা নিশ্চিত করুন। RouteRules ProxyEndpoint এ টপ-ডাউন মূল্যায়ন করা হয়।
API প্রক্সি কনফিগারেশন রেফারেন্স দেখুন। - API প্রক্সি বান্ডেলের আকার: API প্রক্সি বান্ডেল 15MB এর থেকে বড় হতে পারে না। ব্যক্তিগত ক্লাউডের জন্য Apigee এজ-এ, আপনি নিম্নোক্ত অবস্থানে
thrift_framed_transport_size_in_mb
বৈশিষ্ট্য পরিবর্তন করে আকারের সীমা পরিবর্তন করতে পারেন: cassandra.yaml (Cassandra-এ) এবং conf/apigee/management-server/repository.properties। - API সংস্করণ: API সংস্করণের বিষয়ে Apigee-এর চিন্তাভাবনা এবং সুপারিশের জন্য, ওয়েব API ডিজাইন: দ্য মিসিং লিঙ্ক ই-বুক-এর সংস্করণিং বিভাগটি দেখুন।
CORS সক্ষম করা হচ্ছে
আপনার APIগুলি প্রকাশ করার আগে, ক্লায়েন্ট-সাইড ক্রস-অরিজিন অনুরোধগুলিকে সমর্থন করার জন্য আপনাকে আপনার API প্রক্সিগুলিতে CORS সক্ষম করতে হবে৷
CORS (ক্রস-অরিজিন রিসোর্স শেয়ারিং) হল একটি স্ট্যান্ডার্ড মেকানিজম যা জাভাস্ক্রিপ্ট XMLHttpRequest (XHR) কলগুলিকে একটি ওয়েব পেজে নির্বাহিত কলগুলিকে নন-অরিজিন ডোমেনের রিসোর্সের সাথে ইন্টারঅ্যাক্ট করতে দেয়। CORS হল একই-অরিজিন নীতির একটি সাধারণভাবে বাস্তবায়িত সমাধান যা সমস্ত ব্রাউজার দ্বারা প্রয়োগ করা হয়। উদাহরণস্বরূপ, আপনি যদি আপনার ব্রাউজারে জাভাস্ক্রিপ্ট কোড নির্বাহ করা থেকে Twitter API-এ একটি XHR কল করেন, তাহলে কলটি ব্যর্থ হবে৷ এর কারণ হল যে ডোমেনটি আপনার ব্রাউজারে পৃষ্ঠাটি পরিবেশন করে সেটি টুইটার এপিআই পরিবেশনকারী ডোমেনের মতো নয়। CORS সার্ভারকে "অপ্ট-ইন" করার অনুমতি দিয়ে এই সমস্যার সমাধান প্রদান করে যদি তারা ক্রস-অরিজিন রিসোর্স শেয়ারিং প্রদান করতে চায়।
API প্রকাশ করার আগে আপনার API প্রক্সিগুলিতে CORS সক্ষম করার বিষয়ে তথ্যের জন্য, একটি API প্রক্সিতে CORS সমর্থন যোগ করা দেখুন।
বার্তা পেলোড আকার
এজ-এ মেমরি সমস্যা প্রতিরোধ করতে, বার্তা পেলোডের আকার 10MB-তে সীমাবদ্ধ। এই আকারগুলি অতিক্রম করার ফলে একটি protocol.http.TooBigBody
ত্রুটি দেখা দেয়৷
এই Apigee কমিউনিটি পোস্টে এই সমস্যাটিও আলোচনা করা হয়েছে।
এজ-এ বড় বার্তার আকারগুলি পরিচালনা করার জন্য নিম্নলিখিত প্রস্তাবিত কৌশলগুলি রয়েছে:
- স্ট্রিম অনুরোধ এবং প্রতিক্রিয়া. নোট করুন যে আপনি যখন স্ট্রিম করেন, তখন নীতিগুলির আর বার্তা সামগ্রীতে অ্যাক্সেস থাকে না। স্ট্রিমিং অনুরোধ এবং প্রতিক্রিয়া দেখুন।
- এজ ফর প্রাইভেট ক্লাউড সংস্করণ 4.15.07 এবং তার আগের,
HTTPResponse.body.buffer.limit
প্যারামিটারে সীমা বাড়ানোর জন্য বার্তা প্রসেসরhttp.properties
ফাইলটি সম্পাদনা করুন৷ উত্পাদনে পরিবর্তন স্থাপন করার আগে পরীক্ষা করতে ভুলবেন না। - এজ ফর প্রাইভেট ক্লাউড সংস্করণ 4.16.01 এবং পরবর্তীতে, একটি পেলোড সহ অনুরোধে অবশ্যই বিষয়বস্তু-দৈর্ঘ্য শিরোনাম অন্তর্ভুক্ত করতে হবে, অথবা "ট্রান্সফার-এনকোডিং: খণ্ডিত" শিরোনামটি স্ট্রিম করার ক্ষেত্রে। একটি খালি পেলোড সহ একটি API প্রক্সিতে পোস্ট করার জন্য, আপনাকে অবশ্যই 0 এর একটি বিষয়বস্তু-দৈর্ঘ্য পাস করতে হবে৷
- এজ ফর প্রাইভেট ক্লাউড সংস্করণ 4.16.01 এবং পরবর্তীতে, সীমা পরিবর্তন করতে নিম্নলিখিত বৈশিষ্ট্যগুলি /opt/apigee/router.properties বা message-processor.properties-এ সেট করুন৷ আরও জানতে রাউটার বা বার্তা প্রসেসরে বার্তার আকারের সীমা সেট করুন দেখুন।
উভয় বৈশিষ্ট্যের একটি ডিফল্ট মান "10m" 10MB এর সাথে সম্পর্কিত:- conf_http_HTTPRequest.body.buffer.limit
- conf_http_HTTPResponse.body.buffer.limit
ফল্ট হ্যান্ডলিং
- সমস্ত ফল্ট হ্যান্ডলিং হ্যান্ডেল করার জন্য ফল্ট রুলস লিভারেজ করুন। (RaiseFault নীতিগুলি বার্তা প্রবাহ বন্ধ করতে এবং ফল্ট রুলস ফ্লোতে প্রক্রিয়াকরণ পাঠাতে ব্যবহৃত হয়।)
- FaultRules ফ্লো-এর মধ্যে, RaiseFault পলিসি নয়, ফল্ট প্রতিক্রিয়া তৈরি করতে AssignMessage নীতিগুলি ব্যবহার করুন৷ শর্তসাপেক্ষে অ্যাসাইনমেসেজ নীতিগুলি সঞ্চালন করুন যা ঘটে এমন ফল্টের উপর ভিত্তি করে।
- সর্বদা একটি ডিফল্ট 'ক্যাচ-অল' ফল্ট হ্যান্ডলার অন্তর্ভুক্ত করে যাতে সিস্টেম-উত্পন্ন ত্রুটিগুলি গ্রাহক-সংজ্ঞায়িত ফল্ট প্রতিক্রিয়া বিন্যাসে ম্যাপ করা যায়।
- যদি সম্ভব হয়, সর্বদা ত্রুটি প্রতিক্রিয়াগুলি আপনার কোম্পানি বা প্রকল্পে উপলব্ধ যেকোনো মানক বিন্যাসের সাথে মেলে।
- অর্থপূর্ণ, মানব-পঠনযোগ্য ত্রুটি বার্তাগুলি ব্যবহার করুন যা ত্রুটির অবস্থার সমাধানের পরামর্শ দেয়।
হ্যান্ডলিং ফল্ট দেখুন.
শিল্পের সর্বোত্তম অনুশীলনের জন্য, RESTful ত্রুটি প্রতিক্রিয়া নকশা দেখুন।
জেদ
কী/মান মানচিত্র
- শুধুমাত্র সীমিত ডেটা সেটের জন্য কী/মান মানচিত্র ব্যবহার করুন। এগুলি দীর্ঘমেয়াদী ডেটা স্টোর হওয়ার জন্য ডিজাইন করা হয়নি।
- কী/মান মানচিত্র ব্যবহার করার সময় কর্মক্ষমতা বিবেচনা করুন কারণ এই তথ্য ক্যাসান্দ্রা ডাটাবেসে সংরক্ষিত আছে।
মূল মান মানচিত্র অপারেশন নীতি দেখুন।
রেসপন্স ক্যাশিং
- প্রতিক্রিয়া সফল না হলে বা অনুরোধটি একটি GET না হলে প্রতিক্রিয়া ক্যাশে পপুলেট করবেন না। তৈরি করা, আপডেট করা এবং মুছে ফেলাগুলি ক্যাশে করা উচিত নয়৷
<SkipCachePopulation>response.status.code != 200 or request.verb != "GET"</SkipCachePopulation>
- একটি একক সামঞ্জস্যপূর্ণ বিষয়বস্তুর প্রকার (উদাহরণস্বরূপ, XML বা JSON) সহ ক্যাশে পপুলেট করুন। একটি রেসপন্সক্যাশে এন্ট্রি পুনরুদ্ধার করার পরে, তারপর JSONtoXML বা XMLToJSON এর সাথে প্রয়োজনীয় বিষয়বস্তুর ধরনে রূপান্তর করুন৷ এটি দ্বিগুণ, তিনগুণ বা আরও বেশি ডেটা সংরক্ষণ করা প্রতিরোধ করবে।
- নিশ্চিত করুন যে ক্যাশে কী ক্যাশিং প্রয়োজনীয়তার জন্য যথেষ্ট। অনেক ক্ষেত্রে,
request.querystring
অনন্য শনাক্তকারী হিসেবে ব্যবহার করা যেতে পারে। - ক্যাশে কী-তে API কী (
client_id
) অন্তর্ভুক্ত করবেন না, যদি না স্পষ্টভাবে প্রয়োজন হয়। প্রায়শই, শুধুমাত্র একটি কী দ্বারা সুরক্ষিত APIগুলি প্রদত্ত অনুরোধের জন্য সমস্ত ক্লায়েন্টকে একই ডেটা ফেরত দেয়। API কী-এর উপর ভিত্তি করে বেশ কয়েকটি এন্ট্রির জন্য একই মান সংরক্ষণ করা অদক্ষ। - নোংরা পড়া এড়াতে উপযুক্ত ক্যাশে মেয়াদ শেষ হওয়ার ব্যবধান সেট করুন।
- যখনই সম্ভব, প্রক্সিএন্ডপয়েন্ট রেসপন্স পোস্টফ্লোতে যত দেরিতে সম্ভব ক্যাশে এক্সিকিউট করে রেসপন্স ক্যাশে পলিসি রাখার চেষ্টা করুন। অন্য কথায়, জাভাস্ক্রিপ্ট-ভিত্তিক মধ্যস্থতা এবং JSON এবং XML-এর মধ্যে রূপান্তর সহ অনুবাদ এবং মধ্যস্থতা পদক্ষেপের পরে এটি কার্যকর করুন। মধ্যস্থতা করা ডেটা ক্যাশ করার মাধ্যমে, আপনি প্রতিবার ক্যাশে করা ডেটা পুনরুদ্ধার করার সময় মধ্যস্থতা পদক্ষেপটি কার্যকর করার কার্যক্ষমতা খরচ এড়ান।
মনে রাখবেন যে মধ্যস্থতার ফলে অনুরোধ থেকে অনুরোধ ভিন্ন প্রতিক্রিয়া দেখা দিলে আপনি তার পরিবর্তে অমার্জিত ডেটা ক্যাশে করতে চাইতে পারেন।
- ক্যাশে এন্ট্রি খুঁজতে প্রতিক্রিয়া ক্যাশে নীতি প্রক্সিএন্ডপয়েন্ট অনুরোধ প্রিফ্লোতে হওয়া উচিত। একটি ক্যাশে এন্ট্রি ফেরত দেওয়ার আগে ক্যাশে কী জেনারেশন ব্যতীত অত্যধিক যুক্তি প্রয়োগ করা এড়িয়ে চলুন। অন্যথায়, ক্যাশিংয়ের সুবিধাগুলি হ্রাস করা হয়।
- সাধারণভাবে, আপনার সর্বদা প্রতিক্রিয়া ক্যাশে লুকআপ যতটা সম্ভব ক্লায়েন্ট অনুরোধের কাছাকাছি রাখা উচিত। বিপরীতভাবে, আপনার প্রতিক্রিয়া ক্যাশে জনসংখ্যা যতটা সম্ভব ক্লায়েন্ট প্রতিক্রিয়ার কাছাকাছি রাখা উচিত।
- একটি প্রক্সিতে একাধিক, ভিন্ন প্রতিক্রিয়া ক্যাশে নীতি ব্যবহার করার সময়, প্রতিটির জন্য পৃথক আচরণ নিশ্চিত করতে এই নির্দেশিকাগুলি অনুসরণ করুন:
- পারস্পরিক একচেটিয়া শর্তের উপর ভিত্তি করে প্রতিটি নীতি কার্যকর করুন। এটি নিশ্চিত করতে সাহায্য করবে যে একাধিক প্রতিক্রিয়া ক্যাশে নীতিগুলির মধ্যে শুধুমাত্র একটি কার্যকর হয়৷
- প্রতিটি প্রতিক্রিয়া ক্যাশে নীতির জন্য বিভিন্ন ক্যাশে সংস্থান সংজ্ঞায়িত করুন। আপনি নীতির <CacheResource> এলিমেন্টে ক্যাশে রিসোর্স নির্দিষ্ট করুন।
রেসপন্স ক্যাশে নীতি দেখুন।
নীতি এবং কাস্টম কোড
নীতি বা কাস্টম কোড?
- বিল্ট-ইন নীতিগুলি প্রথমে এবং সর্বাগ্রে ব্যবহার করুন (যখন সম্ভব)। Apigee নীতিগুলি কঠোর, অপ্টিমাইজ করা এবং সমর্থিত। উদাহরণস্বরূপ, পেলোড তৈরি করতে, পেলোড (XPath, JSONPath) ইত্যাদি থেকে তথ্য বের করতে JavaScript (যখন সম্ভব হয়) পরিবর্তে স্ট্যান্ডার্ড AssignMessage এবং ExtractVariables নীতিগুলি ব্যবহার করুন।
- জাভাস্ক্রিপ্ট পাইথন এবং জাভা থেকে পছন্দ করা হয়। যাইহোক, যদি কর্মক্ষমতা প্রাথমিক প্রয়োজন হয়, তাহলে JavaScript এর মাধ্যমে Java ব্যবহার করা উচিত।
জাভাস্ক্রিপ্ট
- JavaScript ব্যবহার করুন যদি এটি Apigee নীতির চেয়ে বেশি স্বজ্ঞাত হয় (উদাহরণস্বরূপ, অনেকগুলি বিভিন্ন URI সংমিশ্রণের জন্য
target.url
সেট করার সময়)। - জটিল পেলোড পার্সিং যেমন JSON অবজেক্টের মাধ্যমে পুনরাবৃত্তি করা এবং বেস64 এনকোডিং/ডিকোডিং।
- জাভাস্ক্রিপ্ট নীতির একটি সময়সীমা আছে, তাই অসীম লুপগুলি ব্লক করা হয়েছে৷
- সর্বদা JavaScript ধাপ ব্যবহার করুন এবং ফাইলগুলিকে
jsc
সম্পদ ফোল্ডারে রাখুন। জাভাস্ক্রিপ্ট পলিসি টাইপ ডিপ্লয়মেন্টের সময় কোডটিকে প্রাক-কম্পাইল করে।
জাভাস্ক্রিপ্টের সাথে প্রোগ্রামিং API প্রক্সি দেখুন।
জাভা
- কর্মক্ষমতা সর্বোচ্চ অগ্রাধিকার হলে Java ব্যবহার করুন, অথবা যদি জাভাস্ক্রিপ্টে যুক্তি প্রয়োগ করা না যায়।
- সোর্স কোড ট্র্যাকিং এ জাভা সোর্স ফাইল অন্তর্ভুক্ত করুন।
এপিআই প্রক্সিতে জাভা ব্যবহারের তথ্যের জন্য জাভা কলআউট এবং জাভা কলআউট নীতির সাহায্যে প্রতিক্রিয়াটিকে বড় হাতের অক্ষরে রূপান্তর করুন ।
পাইথন
- একেবারে প্রয়োজন না হলে পাইথন ব্যবহার করবেন না। পাইথন স্ক্রিপ্টগুলি সাধারণ সম্পাদনের জন্য পারফরম্যান্সের বাধাগুলি প্রবর্তন করতে পারে, কারণ এটি রানটাইমে ব্যাখ্যা করা হয়।
স্ক্রিপ্ট কলআউট (জাভা, জাভাস্ক্রিপ্ট, পাইথন)
- একটি বিশ্বব্যাপী চেষ্টা/ক্যাচ, বা সমতুল্য ব্যবহার করুন।
- অর্থপূর্ণ ব্যতিক্রমগুলি নিক্ষেপ করুন এবং ভুল প্রতিক্রিয়াগুলিতে ব্যবহারের জন্য এগুলি সঠিকভাবে ধরুন।
- ছুঁড়ে ফেলুন এবং ব্যতিক্রমগুলি তাড়াতাড়ি ধরুন। সমস্ত ব্যতিক্রমগুলি পরিচালনা করতে বিশ্বব্যাপী চেষ্টা/ক্যাচ ব্যবহার করবেন না।
- প্রয়োজনে নাল এবং অনির্ধারিত চেকগুলি সম্পাদন করুন। ঐচ্ছিক প্রবাহ ভেরিয়েবলগুলি পুনরুদ্ধার করার সময় কখন এটি করতে হবে তার একটি উদাহরণ।
- স্ক্রিপ্ট কলআউটের ভিতরে HTTP/S অনুরোধ করা এড়িয়ে চলুন। পরিবর্তে, Apigee ServiceCallout নীতিটি ব্যবহার করুন কারণ নীতিটি সংযোগগুলি সুন্দরভাবে পরিচালনা করে৷
জাভাস্ক্রিপ্ট
- API প্ল্যাটফর্মে জাভাস্ক্রিপ্ট E4X এর মাধ্যমে XML সমর্থন করে।
জাভাস্ক্রিপ্ট অবজেক্ট মডেল দেখুন।
জাভা
- বার্তা পেলোড অ্যাক্সেস করার সময়,
context.getMessage()
বনামcontext.getResponseMessage
বাcontext.getRequestMessage
ব্যবহার করার চেষ্টা করুন। এটি নিশ্চিত করে যে কোডটি অনুরোধ এবং প্রতিক্রিয়া উভয় প্রবাহে পেলোড পুনরুদ্ধার করতে পারে। - Apigee Edge সংস্থা বা পরিবেশে লাইব্রেরি আমদানি করুন এবং JAR ফাইলে এগুলি অন্তর্ভুক্ত করবেন না। এটি বান্ডিলের আকার হ্রাস করে এবং অন্যান্য JAR ফাইলগুলিকে একই লাইব্রেরি সংগ্রহস্থল অ্যাক্সেস করতে দেয়।
- Apigee রিসোর্স API ব্যবহার করে JAR ফাইলগুলিকে এপিআই প্রক্সি রিসোর্স ফোল্ডারের মধ্যে অন্তর্ভুক্ত করার পরিবর্তে আমদানি করুন। এটি স্থাপনার সময় হ্রাস করবে এবং একই JAR ফাইলগুলিকে একাধিক API প্রক্সি দ্বারা উল্লেখ করার অনুমতি দেবে৷ আরেকটি সুবিধা হল ক্লাস লোডার বিচ্ছিন্নতা।
- সম্পদ পরিচালনার জন্য জাভা ব্যবহার করবেন না (উদাহরণস্বরূপ, থ্রেড পুল তৈরি এবং পরিচালনা)।
একটি জাভা কলআউট দিয়ে প্রতিক্রিয়াটিকে বড় হাতের অক্ষরে রূপান্তর করুন দেখুন।
পাইথন
- অর্থপূর্ণ ব্যতিক্রমগুলি নিক্ষেপ করুন এবং Apigee ফল্ট প্রতিক্রিয়াগুলিতে ব্যবহারের জন্য এগুলি সঠিকভাবে ধরুন
পাইথন স্ক্রিপ্ট নীতি দেখুন।
সার্ভিস কলআউট
- প্রক্সি চেইনিং ব্যবহার করার জন্য অনেকগুলি বৈধ ব্যবহারের ক্ষেত্রে রয়েছে, যেখানে আপনি অন্য API প্রক্সিতে কল করার জন্য একটি API প্রক্সিতে একটি পরিষেবা কলআউট ব্যবহার করেন। আপনি যদি প্রক্সি চেইনিং ব্যবহার করেন, তাহলে একই API প্রক্সিতে ফিরে আসা "অসীম লুপ" রিকার্সিভ কলআউটগুলি এড়াতে ভুলবেন না।
আপনি যদি একই প্রতিষ্ঠান এবং পরিবেশে থাকা প্রক্সিগুলির মধ্যে সংযোগ স্থাপন করছেন, তাহলে অপ্রয়োজনীয় নেটওয়ার্ক ওভারহেড এড়ায় এমন একটি স্থানীয় সংযোগ বাস্তবায়নের জন্য আরও বেশি কিছুর জন্য চেইনিং API প্রক্সিগুলিকে একসাথে দেখতে ভুলবেন না।
- AssignMessage নীতি ব্যবহার করে একটি ServiceCallout অনুরোধ বার্তা তৈরি করুন এবং একটি বার্তা ভেরিয়েবলে অনুরোধ বস্তুটি পূরণ করুন। (এর মধ্যে রিকোয়েস্ট পেলোড, পাথ এবং পদ্ধতি সেট করা আছে।)
- নীতির মধ্যে কনফিগার করা URLটির জন্য প্রোটোকল স্পেসিফিকেশন প্রয়োজন, মানে URL-এর প্রোটোকল অংশ,
https://
উদাহরণ স্বরূপ, কোনো ভেরিয়েবল দ্বারা নির্দিষ্ট করা যাবে না। এছাড়াও, ইউআরএলের ডোমেন অংশ এবং বাকি ইউআরএলের জন্য আপনাকে অবশ্যই আলাদা ভেরিয়েবল ব্যবহার করতে হবে। যেমন:https://{domain}/{path}
- একটি পৃথক বার্তা ভেরিয়েবলে একটি ServiceCallout-এর জন্য প্রতিক্রিয়া বস্তু সংরক্ষণ করুন। তারপরে আপনি মেসেজ ভেরিয়েবল পার্স করতে পারেন এবং মূল মেসেজ পেলোড অন্য পলিসি দ্বারা ব্যবহারের জন্য অক্ষত রাখতে পারেন।
পরিষেবা কলআউট নীতি দেখুন।
সত্তা অ্যাক্সেস করা
প্রবেশাধিকার নীতি
- ভাল পারফরম্যান্সের জন্য, অ্যাপের নামের পরিবর্তে
uuid
দ্বারা অ্যাপগুলি দেখুন।
অ্যাক্সেস সত্তা নীতি দেখুন।
লগিং
- বান্ডিল জুড়ে এবং একই বান্ডেলের মধ্যে একটি সাধারণ syslog নীতি ব্যবহার করুন। এটি একটি সামঞ্জস্যপূর্ণ লগিং বিন্যাস রাখবে।
মেসেজলগিং নীতি দেখুন।
মনিটরিং
ক্লাউড গ্রাহকদের Apigee Edge (রাউটার, মেসেজ প্রসেসর, ইত্যাদি) এর পৃথক উপাদান পরীক্ষা করার প্রয়োজন নেই। Apigee এর গ্লোবাল অপারেশনস টিম গ্রাহকদের দ্বারা স্বাস্থ্য পরীক্ষার অনুরোধের প্রেক্ষিতে API স্বাস্থ্য পরীক্ষা সহ সমস্ত উপাদান পুঙ্খানুপুঙ্খভাবে পর্যবেক্ষণ করছে।
Apigee বিশ্লেষণ
অ্যানালিটিক্স নন-ক্রিটিকাল API পর্যবেক্ষণ প্রদান করতে পারে কারণ ত্রুটি শতাংশ পরিমাপ করা হয়।
বিশ্লেষণ ড্যাশবোর্ড দেখুন।
ট্রেস
API এজ ম্যানেজমেন্ট UI- তে ট্রেস টুলটি একটি API-এর ডেভেলপমেন্ট বা প্রোডাকশন অপারেশন চলাকালীন রানটাইম API সমস্যা ডিবাগ করার জন্য উপযোগী।
ট্রেস টুল ব্যবহার করা দেখুন।
নিরাপত্তা
- আপনার পরীক্ষার পরিবেশে অ্যাক্সেস সীমিত করতে IP ঠিকানা সীমাবদ্ধতা নীতিগুলি ব্যবহার করুন৷ আপনার ডেভেলপমেন্ট মেশিন বা পরিবেশের আইপি অ্যাড্রেসের জন্য অ্যাক্সেসের অনুমতি দিন এবং অন্য সবগুলোকে অনুমোদন না দিন। অ্যাক্সেস কন্ট্রোল নীতি ।
- সর্বদা কন্টেন্ট সুরক্ষা নীতিগুলি (JSON এবং বা XML) API প্রক্সিগুলিতে প্রয়োগ করুন যা উত্পাদনে নিযুক্ত করা হয়৷ JSONThreatProtection নীতি ।
- আরও নিরাপত্তা সেরা অনুশীলনের জন্য নিম্নলিখিত বিষয়গুলি দেখুন: