আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
![]()
কী
Apigee Edge ডেটা স্টোর থেকে আপনার নির্দিষ্ট করা এনটিটি প্রোফাইলগুলো পুনরুদ্ধার করে। পলিসিটি প্রোফাইলটিকে একটি ভেরিয়েবলে রাখে, যার নাম AccessEntity.{policy_name} ফরম্যাট অনুসরণ করে। আপনি নিম্নলিখিত এনটিটিগুলোর প্রোফাইল অ্যাক্সেস করতে AccessEntity ব্যবহার করতে পারেন:
- অ্যাপ
- এপিআই পণ্য
- কোম্পানি
- কোম্পানি ডেভেলপার
- ভোক্তা মূল
- ডেভেলপার
AccessEntity পলিসিটি একটি পলিসি-ভিত্তিক রানটাইম ডাটাবেস লুকআপ হিসেবে কাজ করে। এই পলিসি থেকে প্রাপ্ত প্রোফাইল তথ্য ব্যবহার করে আপনি ডাইনামিক আচরণ, যেমন—শর্তসাপেক্ষ এন্ডপয়েন্ট রাউটিং, ফ্লো এক্সিকিউশন এবং পলিসি এনফোর্সমেন্ট সক্রিয় করতে পারেন।
আপনি এনটিটি প্রোফাইল ডেটা XML হিসেবে পেতে এবং একটি ভেরিয়েবলে রাখতে AccessEntity পলিসি ব্যবহার করেন। আপনি যে এনটিটিটি পেতে চান, সেটিকে একটি এনটিটি টাইপ এবং এক বা একাধিক আইডেন্টিফায়ার উল্লেখ করে শনাক্ত করেন, যা নির্দিষ্ট করে যে আপনি সেই টাইপের কোন এনটিটিটি চান। পরবর্তীতে, অন্য কোনো পলিসিতে, আপনি ExtractVariables পলিসি বা AssignMessage পলিসির মতো অন্য কোনো পলিসি ব্যবহার করে সেই এনটিটি প্রোফাইল ডেটা পুনরুদ্ধার করতে পারেন।
নমুনা
নিম্নলিখিত নমুনাগুলিতে দেখানো হয়েছে AccessEntity ExtractVariables এবং AssignMessage পলিসিগুলির সাথে একত্রে ব্যবহার করে একজন ডেভেলপারের ইমেল বের করে HTTP হেডারে যোগ করা হয়।
অন্যান্য নীতিতে ব্যবহারের জন্য ডেভেলপারদের ইমেল সংগ্রহ করা
Edge থেকে কোন এনটিটি প্রোফাইলটি নেওয়া হবে এবং প্রোফাইলের ডেটা কোথায় রাখা হবে, তা নির্দিষ্ট করতে AccessEntity পলিসি সেট আপ করুন।
নিম্নলিখিত উদাহরণে, পলিসিটি ডেভেলপারকে শনাক্ত করার জন্য কোয়েরি প্যারাম হিসেবে পাঠানো একটি এপিআই কী ব্যবহার করে developer এনটিটি প্রোফাইল সংগ্রহ করে। প্রোফাইলটি এমন একটি ভেরিয়েবলে রাখা হয় যার নাম AccessEntity.{policy_name} আকারে থাকে। সুতরাং, এই পলিসি দ্বারা সেট করা ভেরিয়েবলটি হবে AccessEntity.GetDeveloperProfile ।
<AccessEntity name="GetDeveloperProfile"> <!-- This is the type entity whose profile we need to pull from the Edge datastore. --> <EntityType value="developer"/> <!-- We tell the policy to use the API key (presented as query parameter) to identify the developer. --> <EntityIdentifier ref="request.queryparam.apikey" type="consumerkey"/> </AccessEntity>
AccessEntity দ্বারা সেট করা ভেরিয়েবল থেকে এনটিটি প্রোফাইল মান পুনরুদ্ধার করতে অন্য একটি পলিসি ব্যবহার করুন।
নিম্নলিখিত উদাহরণে, একটি ExtractVariables পলিসি, AccessEntity দ্বারা পূর্বে সেট করা AccessEntity.GetDeveloperProfile ভেরিয়েবল থেকে একটি মান পুনরুদ্ধার করে।
উল্লেখ্য যে, প্রাপ্ত মানটি XMLPayload এলিমেন্টে একটি XPath এক্সপ্রেশন হিসেবে নির্দিষ্ট করা থাকে। নিষ্কাশিত মানটি একটি developer.email ভেরিয়েবলে রাখা হয়।
<ExtractVariables name="SetDeveloperProfile"> <!-- The source element points to the variable populated by AccessEntity policy. The format is <policy-type>.<policy-name>. In this case, the variable contains the whole developer profile. --> <Source>AccessEntity.GetDeveloperProfile</Source> <VariablePrefix>developer</VariablePrefix> <XMLPayload> <Variable name="email" type="string"> <!-- You parse elements from the developer profile using XPath. --> <XPath>/Developer/Email</XPath> </Variable> </XMLPayload> </ExtractVariables>
নিম্নলিখিত AssignMessage পলিসিটি ExtractVariables পলিসি দ্বারা সেট করা ডেভেলপার ইমেলটি পুনরুদ্ধার করে।
<!-- We'll use this policy to return the variables set in the developer profile, just so that we can easily see them in the response. --> <AssignMessage name="EchoVariables"> <AssignTo createNew="false" type="response"></AssignTo> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <Set> <Headers> <Header name="X-Developer-email">{developer.email}</Header> </Headers> </Set> </AssignMessage>
উপাদান রেফারেন্স
একটি AccessEntity পলিসির কাঠামোর মূল ভিত্তি হলো:
<AccessEntity name="policy_name"> <EntityType value="entity_type"/> <EntityIdentifier ref="entity_identifier" type="identifier_type"/> <SecondaryIdentifier ref="secondary_identifier" type="identifier_type"/> </AccessEntity>
আপনি একই ধরণের একাধিক সত্তাকে একটি Identifiers এলিমেন্টে একত্রিত করে অ্যাক্সেস করতে পারেন:
<AccessEntity name="name_of_the_policy"> <EntityType value="type_of_entity"/> <Identifiers> <Identifier> <EntityIdentifier ref="reference_to_entity_identifier" type*="identifier_type"/> <SecondaryIdentifier ref="reference_to_secondary_entity_identifier" type="identifier_type"/><!-- optional --> </Identifier > <Identifier> <EntityIdentifier ref="reference_to_entity_identifier" type*="identifier_type"/> <SecondaryIdentifier ref="reference_to_secondary_entity_identifier" type="identifier_type"/><!-- optional --> </Identifier > </Identifiers> </AccessEntity>
<অ্যাক্সেসএন্টিটি> অ্যাট্রিবিউট
<AccessEntity async="false" continueOnError="false" enabled="true" name="policy_name">
নিম্নলিখিত সারণী সমস্ত নীতির মূল উপাদানগুলির জন্য সাধারণ বৈশিষ্ট্যগুলি বর্ণনা করে:
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
|---|---|---|---|
name | নীতির অভ্যন্তরীণ নাম। ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে | N/A | প্রয়োজন |
continueOnError | একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে | মিথ্যা | ঐচ্ছিক |
enabled | নীতি প্রয়োগ করতে নীতি বন্ধ করতে | সত্য | ঐচ্ছিক |
async | এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷ | মিথ্যা | অবচয় |
<DisplayName> উপাদান
ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে name বৈশিষ্ট্য ছাড়াও ব্যবহার করুন।
<DisplayName>Policy Display Name</DisplayName>
| ডিফল্ট | N/A আপনি এই উপাদানটি বাদ দিলে, নীতির |
|---|---|
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | স্ট্রিং |
<সত্তা শনাক্তকারী> উপাদান
EntityType-এ প্রদত্ত ধরনের নির্দিষ্ট সত্তাটি (entity) উল্লেখ করে, যা পেতে হবে।
<EntityIdentifier ref="value_variable" type="identifier_type"/>
ডিফল্ট | প্রযোজ্য নয় |
উপস্থিতি | প্রয়োজনীয় |
প্রকার | স্ট্রিং |
বৈশিষ্ট্য
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি | প্রকার |
|---|---|---|---|---|
| রেফারেন্স | যে ভেরিয়েবলটি আইডেন্টিফায়ারের উৎস প্রদান করে, যেমন | প্রযোজ্য নয় | প্রয়োজনীয়। | স্ট্রিং |
| প্রকার | ref অ্যাট্রিবিউটে থাকা ভেরিয়েবলের টাইপ, যেমন consumerkey । ভ্যালুগুলোর তালিকার জন্য এনটিটি টাইপ এবং আইডেন্টিফায়ার দেখুন। | প্রয়োজনীয়। | স্ট্রিং |
উদাহরণ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AccessEntity async="false" continueOnError="false" enabled="true" name="GetCompany"> <DisplayName>GetCompanyProfile</DisplayName> <EntityType value="company"></EntityType> <EntityIdentifier ref="request.queryparam.apikey" type="consumerkey"/> </AccessEntity>
<সত্তার প্রকার> উপাদান
ডেটা স্টোর থেকে কোন ধরনের এনটিটি পুনরুদ্ধার করা হবে তা নির্দিষ্ট করে।
<EntityType value="entity_type"/>
ডিফল্ট | প্রযোজ্য নয় |
উপস্থিতি | প্রয়োজনীয় |
প্রকার | স্ট্রিং |
প্রদত্ত টাইপের কোন এনটিটিটি আপনি চান, তা নির্দিষ্ট করতে একটি EntityIdentifier এলিমেন্ট ব্যবহার করুন। এনটিটি টাইপগুলোর রেফারেন্সের জন্য, এনটিটি টাইপস অ্যান্ড আইডেন্টিফায়ারস দেখুন।
বৈশিষ্ট্য
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি | প্রকার |
|---|---|---|---|---|
| মূল্য | সমর্থিত এনটিটি টাইপগুলোর মধ্যে একটি। তালিকার জন্য এনটিটি টাইপ এবং আইডেন্টিফায়ার দেখুন। | কিছুই না। | প্রয়োজনীয়। | স্ট্রিং |
<সেকেন্ডারিআইডেন্টিফায়ার> উপাদান
EntityIdentifier সাথে একত্রে, প্রদত্ত EntityType এর কাঙ্ক্ষিত ইনস্ট্যান্সটি শনাক্ত করার জন্য একটি মান নির্দিষ্ট করে।
<SecondaryIdentifier ref="value_variable" type="identifier_type"/>
ডিফল্ট | প্রযোজ্য নয় |
উপস্থিতি | ঐচ্ছিক |
প্রকার | স্ট্রিং |
শুধুমাত্র একটি EntityIdentifier নির্দিষ্ট করার সময় SecondaryIdentifier ব্যবহার করলে যে আপনি একটি একক এনটিটি পাবেন, তার কোনো নিশ্চয়তা নেই। আরও তথ্যের জন্য ‘Narrowing results with secondary identifiers’ দেখুন।
একাধিক SecondaryIdentifier এলিমেন্ট ব্যবহার করা সমর্থিত নয়।
বৈশিষ্ট্য
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি | প্রকার |
|---|---|---|---|---|
| রেফারেন্স | যে ভেরিয়েবলটি আইডেন্টিফায়ারের উৎস প্রদান করে, যেমন | প্রযোজ্য নয় | প্রয়োজনীয়। | স্ট্রিং |
| প্রকার | ref অ্যাট্রিবিউটে থাকা ভেরিয়েবলের টাইপ, যেমন consumerkey । ভ্যালুগুলোর তালিকার জন্য এনটিটি টাইপ এবং আইডেন্টিফায়ার দেখুন। | প্রয়োজনীয়। | স্ট্রিং |
উদাহরণ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AccessEntity async="false" continueOnError="false" enabled="true" name="GetAPIProduct"> <DisplayName>GetAPIProduct</DisplayName> <EntityType value="apiproduct"></EntityType> <EntityIdentifier ref="developer.app.name" type="appname"/> <SecondaryIdentifier ref="developer.id" type="developerid"/> </AccessEntity>
ব্যবহারের নির্দেশাবলী
গৌণ শনাক্তকারী ব্যবহার করে ফলাফল সংকুচিত করা
কিছু সত্তার ক্ষেত্রে, আপনার কাঙ্ক্ষিত সত্তাটি খুঁজে পেতে একটিমাত্র শনাক্তকারী যথেষ্ট সুনির্দিষ্ট নাও হতে পারে। সেক্ষেত্রে, ফলাফলকে আরও সীমিত করতে আপনি একটি দ্বিতীয় শনাক্তকারী ব্যবহার করতে পারেন।
আপনার প্রথম, সম্ভবত ব্যাপক নীতি কনফিগারেশনটি দেখতে এইরকম হতে পারে:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AccessEntity async="false" continueOnError="false" enabled="true" name="GetApp"> <DisplayName>GetAppProfile</DisplayName> <EntityType value="apiproduct"></EntityType> <EntityIdentifier ref="request.queryparam.apikey" type="consumerkey"/> </AccessEntity>
যেহেতু একটি অ্যাপ একাধিক API প্রোডাক্টের সাথে যুক্ত থাকতে পারে, তাই শুধু অ্যাপ আইডি ব্যবহার করলে আপনার কাঙ্ক্ষিত API প্রোডাক্টটি নাও পাওয়া যেতে পারে (একাধিক মিলে যাওয়া প্রোডাক্টের মধ্যে আপনি শুধু প্রথমটি পেতে পারেন)।
এর পরিবর্তে, আরও সুনির্দিষ্ট ফলাফল পেতে, আপনি একটি SecondaryIdentifier ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনার ফ্লো-তে appname এবং developerid ভ্যারিয়েবল থাকতে পারে, কারণ একটি OAuth 2.0 এক্সচেঞ্জের সময় এগুলি ডিফল্টরূপে পূরণ হয়ে যায়। অনুরোধকারী অ্যাপের প্রোফাইলের বিবরণ পেতে আপনি একটি AccessEntity পলিসিতে সেই ভ্যারিয়েবলগুলির মান ব্যবহার করতে পারেন।
আপনার আরও সুনির্দিষ্ট পলিসি কনফিগারেশনটি দেখতে এইরকম হতে পারে:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AccessEntity async="false" continueOnError="false" enabled="true" name="GetApp"> <DisplayName>GetAppProfile</DisplayName> <EntityType value="apiproduct"></EntityType> <EntityIdentifier ref="developer.app.name" type="appname"/> <SecondaryIdentifier ref="developer.id" type="developerid"/> </AccessEntity>
সমর্থিত সত্তার প্রকার এবং শনাক্তকারী
AccessEntity নিম্নলিখিত এনটিটি টাইপ এবং আইডেন্টিফায়ারগুলিকে সমর্থন করে।
| সত্তার প্রকার মান | সত্তা শনাক্তকারীর প্রকারভেদ | সেকেন্ডারি আইডেন্টিফায়ার টাইপ |
|---|---|---|
apiproduct | appid | apiresource |
apiproductname | ||
appname | apiresourcedeveloperemaildeveloperidcompanyname | |
consumerkey | apiresource | |
app | appid | |
appname | developeremaildeveloperidcompanyname | |
consumerkey | ||
authorizationcode | authorizationcode | |
company | appid | |
company | ||
consumerkey | ||
companydeveloper | companyname | |
consumerkey | consumerkey | |
consumerkey_scope | consumerkey | |
developer | appid | |
consumerkey | ||
developeremail | ||
developerid | ||
requesttoken | requesttoken | consumerkey |
verifier | verifier |
উদাহরণ সত্তা প্রোফাইল XML
XPath ব্যবহার করে আপনার কাঙ্ক্ষিত এনটিটি প্রোফাইল ভ্যালুটি পেতে হলে, প্রোফাইল XML-এর গঠন সম্পর্কে আপনার কিছু ধারণা থাকা প্রয়োজন। গঠনের একটি উদাহরণের জন্য, আপনার কাঙ্ক্ষিত এনটিটির XML পেতে একটি ম্যানেজমেন্ট API কল ব্যবহার করুন। বিস্তারিত জানতে, ম্যানেজমেন্ট API রেফারেন্স দেখুন।
নিম্নলিখিত বিভাগগুলিতে এপিআই কলের কোড এবং সেই কল থেকে প্রাপ্ত এক্সএমএল-এর উদাহরণ অন্তর্ভুক্ত রয়েছে।
অ্যাপস
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/apps/{app_id} \ -u email:password
এজ ম্যানেজমেন্ট এপিআই রেফারেন্সে অ্যাপ আইডি দ্বারা কোনো অর্গানাইজেশনে অ্যাপ পাওয়ার বিষয়টিও দেখুন।
অথবা:
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/{developer_email}/apps/{app_name} \ -u email:password
Edge ম্যানেজমেন্ট API রেফারেন্সে Get Developer App Details- ও দেখুন।
নমুনা প্রোফাইল:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <App name="thomas-app"> <AccessType>read</AccessType> <ApiProducts/> <Credentials> <Credential> <Attributes/> <ConsumerKey>wrqOOOiPArFI0WRoB1gAJMRbOguekJ5w</ConsumerKey> <ConsumerSecret>WvOhDrJ8m6kzz7Ni</ConsumerSecret> <ApiProducts> <ApiProduct> <Name>FreeProduct</Name> <Status>approved</Status> </ApiProduct> </ApiProducts> <Scopes/> <Status>approved</Status> </Credential> </Credentials> <AppFamily>default</AppFamily> <AppId>ab308c13-bc99-4c50-8434-0e0ed1b86075</AppId> <Attributes> <Attribute> <Name>DisplayName</Name> <Value>Tom's Weather App</Value> </Attribute> </Attributes> <CallbackUrl>http://tom.app/login</CallbackUrl> <CreatedAt>1362502872727</CreatedAt> <CreatedBy>admin@apigee.com</CreatedBy> <DeveloperId>PFK8IwOeAOW01JKA</DeveloperId> <LastModifiedAt>1362502872727</LastModifiedAt> <LastModifiedBy>admin@apigee.com</LastModifiedBy> <Scopes/> <Status>approved</Status> </App>
এপিআই পণ্য
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/apiproducts/{apiproduct_name} \ -u email:password
Edge ম্যানেজমেন্ট API রেফারেন্সে Get API Product- ও দেখুন।
নমুনা XPath, যা weather_free নামের API প্রোডাক্ট থেকে দ্বিতীয় API রিসোর্স (URI) পুনরুদ্ধার করে:
/ApiProduct['@name=weather_free']/ApiResources/ApiResource[1]/text()
নমুনা প্রোফাইল XML হিসাবে ফেরত দেওয়া হয়েছে:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ApiProduct name="weather_free"> <ApiResources> <ApiResource>/forecastrss, /reports</ApiResource> </ApiResources> <ApprovalType>auto</ApprovalType> <Attributes> <Attribute> <Name>description</Name> <Value>Introductory API Product</Value> </Attribute> <Attribute> <Name>developer.quota.interval</Name> <Value>1</Value> </Attribute> <Attribute> <Name>developer.quota.limit</Name> <Value>1</Value> </Attribute> <Attribute> <Name>developer.quota.timeunit</Name> <Value>minute</Value> </Attribute> <Attribute> <Name>servicePlan</Name> <Value>Introductory</Value> </Attribute> </Attributes> <CreatedAt>1355847839224</CreatedAt> <CreatedBy>andrew@apigee.com</CreatedBy> <Description>Free API Product</Description> <DisplayName>Free API Product</DisplayName> <Environments/> <LastModifiedAt>1355847839224</LastModifiedAt> <LastModifiedBy>andrew@apigee.com</LastModifiedBy> <Proxies/> <Scopes/> </ApiProduct>
কোম্পানি
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/companies/{company_name} \ -u email:password
Edge ম্যানেজমেন্ট API রেফারেন্সে Get Company Details- ও দেখুন।
নমুনা প্রোফাইল:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Company name="theramin"> <Apps/> <DisplayName>Theramin Corporation</DisplayName> <Organization>apigee-pm</Organization> <Status>active</Status> <Attributes> <Attribute> <Name>billing_code</Name> <Value>13648765</Value> </Attribute> </Attributes> <CreatedAt>1349208631291</CreatedAt> <CreatedBy>andrew@apigee.com</CreatedBy> <LastModifiedAt>1349208631291</LastModifiedAt> <LastModifiedBy>andrew@apigee.com</LastModifiedBy> </Company>
কোম্পানি ডেভেলপার
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/companies/{company_name}/developers/{developer_name} \ -u email:password
নমুনা প্রোফাইল:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Developers> <Developer> <Email>ntesla@theramin.com</Email> <Role>developer</Role> </Developer> </Developers>
ভোক্তা মূল
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/{developer_email}/apps/{app_name}/keys/{consumer_key} \ -u email:password
Edge ম্যানেজমেন্ট API রেফারেন্সে একটি ডেভেলপার অ্যাপের জন্য মূল বিবরণ পেতেও দেখুন।
নমুনা XPath:
/Credential/ApiProducts/ApiProduct[Name='weather_free']/Status/text()
নমুনা প্রোফাইল:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Credential>
<Attributes/>
<ConsumerKey>XLotL3PRxNkUGXhGAFDPOr6fqtvAhuZe</ConsumerKey>
<ConsumerSecret>iNUyEaOOh96KR3YL</ConsumerSecret>
<ApiProducts>
<ApiProduct>
<Name>weather_free</Name>
<Status>approved</Status>
</ApiProduct>
</ApiProducts>
<Scopes/>
<Status>approved</Status>
</Credential>ডেভেলপার
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/{developer_email} \ -u email:password
Edge ম্যানেজমেন্ট API রেফারেন্সে Get Developer অংশটিও দেখুন।
নমুনা XPath:
/Developer/Attributes/Attribute[Name='my_custom_attribute']/Value/text()
/Developer/Email/text()
নমুনা প্রোফাইল:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Developer> <Apps> <App>weatherappx</App> <App>weatherapp</App> </Apps> <Email>ntesla@theramin.com</Email> <DeveloperId>4Y4xd0KRZ1wmHJqu</DeveloperId> <FirstName>Nikola</FirstName> <LastName>Tesla</LastName> <UserName>theramin</UserName> <OrganizationName>apigee-pm</OrganizationName> <Status>active</Status> <Attributes> <Attribute> <Name>project_type</Name> <Value>public</Value> </Attribute> </Attributes> <CreatedAt>1349797040634</CreatedAt> <CreatedBy>rsaha@apigee.com</CreatedBy> <LastModifiedAt>1349797040634</LastModifiedAt> <LastModifiedBy>rsaha@apigee.com</LastModifiedBy> </Developer>
প্রবাহ পরিবর্তনশীল
যখন AccessEntity পলিসিতে নির্দিষ্ট করা এনটিটি প্রোফাইলটি পুনরুদ্ধার করা হয়, তখন XML-ফরম্যাট করা প্রোফাইল অবজেক্টটি একটি ভেরিয়েবল হিসেবে মেসেজ কনটেক্সটে যুক্ত হয়। ভেরিয়েবলের নাম উল্লেখ করে এটিকে অন্য যেকোনো ভেরিয়েবলের মতোই অ্যাক্সেস করা যায়। ব্যবহারকারীর দেওয়া AccessEntity পলিসির নামটি ভেরিয়েবলের নামের ভেরিয়েবল প্রিফিক্স হিসেবে সেট করা হয়।
উদাহরণস্বরূপ, যদি GetDeveloper নামের একটি AccessEntity পলিসি এক্সিকিউট করা হয়, তাহলে XML-ফরম্যাট করা প্রোফাইলটি AccessEntity.GetDeveloper নামের ভেরিয়েবলে সংরক্ষিত হয়। এরপর, ExtractVariables পলিসিতে সংজ্ঞায়িত একটি XPath ব্যবহার করে XML-ফরম্যাট করা প্রোফাইলটি পার্স করা যেতে পারে, যেখানে উৎস হিসেবে AccessEntity.GetDeveloper নির্দিষ্ট করা থাকে।
ত্রুটির রেফারেন্স
সম্পর্কিত তথ্যের জন্য, নীতি ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার কী জানা দরকার তা দেখুন৷
রানটাইম ত্রুটি
কোনোটিই নয়।
স্থাপনার ত্রুটি
| ত্রুটির নাম | ফল্ট স্ট্রিং | HTTP স্থিতি | ঘটে যখন |
|---|---|---|---|
InvalidEntityType | Invalid type [entity_type] in ACCESSENTITYStepDefinition [policy_name] | N/A | ব্যবহৃত সত্তা টাইপ সমর্থিত প্রকারগুলির মধ্যে একটি হতে হবে৷ |
সম্পর্কিত বিষয়
-
ExtractVariables: ভেরিয়েবল নিষ্কাশন নীতি -
AssignMessage: বার্তা বরাদ্দ নীতি
আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
![]()
কী
Apigee Edge ডেটা স্টোর থেকে আপনার নির্দিষ্ট করা এনটিটি প্রোফাইলগুলো পুনরুদ্ধার করে। পলিসিটি প্রোফাইলটিকে একটি ভেরিয়েবলে রাখে, যার নাম AccessEntity.{policy_name} ফরম্যাট অনুসরণ করে। আপনি নিম্নলিখিত এনটিটিগুলোর প্রোফাইল অ্যাক্সেস করতে AccessEntity ব্যবহার করতে পারেন:
- অ্যাপ
- এপিআই পণ্য
- কোম্পানি
- কোম্পানি ডেভেলপার
- ভোক্তা মূল
- ডেভেলপার
AccessEntity পলিসিটি একটি পলিসি-ভিত্তিক রানটাইম ডাটাবেস লুকআপ হিসেবে কাজ করে। এই পলিসি থেকে প্রাপ্ত প্রোফাইল তথ্য ব্যবহার করে আপনি ডাইনামিক আচরণ, যেমন—শর্তসাপেক্ষ এন্ডপয়েন্ট রাউটিং, ফ্লো এক্সিকিউশন এবং পলিসি এনফোর্সমেন্ট সক্রিয় করতে পারেন।
আপনি এনটিটি প্রোফাইল ডেটা XML হিসেবে পেতে এবং একটি ভেরিয়েবলে রাখতে AccessEntity পলিসি ব্যবহার করেন। আপনি যে এনটিটিটি পেতে চান, সেটিকে একটি এনটিটি টাইপ এবং এক বা একাধিক আইডেন্টিফায়ার উল্লেখ করে শনাক্ত করেন, যা নির্দিষ্ট করে যে আপনি সেই টাইপের কোন এনটিটিটি চান। পরবর্তীতে, অন্য কোনো পলিসিতে, আপনি ExtractVariables পলিসি বা AssignMessage পলিসির মতো অন্য কোনো পলিসি ব্যবহার করে সেই এনটিটি প্রোফাইল ডেটা পুনরুদ্ধার করতে পারেন।
নমুনা
নিম্নলিখিত নমুনাগুলিতে দেখানো হয়েছে AccessEntity ExtractVariables এবং AssignMessage পলিসিগুলির সাথে একত্রে ব্যবহার করে একজন ডেভেলপারের ইমেল বের করে HTTP হেডারে যোগ করা হয়।
অন্যান্য নীতিতে ব্যবহারের জন্য ডেভেলপারদের ইমেল সংগ্রহ করা
Edge থেকে কোন এনটিটি প্রোফাইলটি নেওয়া হবে এবং প্রোফাইলের ডেটা কোথায় রাখা হবে, তা নির্দিষ্ট করতে AccessEntity পলিসি সেট আপ করুন।
নিম্নলিখিত উদাহরণে, পলিসিটি ডেভেলপারকে শনাক্ত করার জন্য কোয়েরি প্যারাম হিসেবে পাঠানো একটি এপিআই কী ব্যবহার করে developer এনটিটি প্রোফাইল সংগ্রহ করে। প্রোফাইলটি এমন একটি ভেরিয়েবলে রাখা হয় যার নাম AccessEntity.{policy_name} আকারে থাকে। সুতরাং, এই পলিসি দ্বারা সেট করা ভেরিয়েবলটি হবে AccessEntity.GetDeveloperProfile ।
<AccessEntity name="GetDeveloperProfile"> <!-- This is the type entity whose profile we need to pull from the Edge datastore. --> <EntityType value="developer"/> <!-- We tell the policy to use the API key (presented as query parameter) to identify the developer. --> <EntityIdentifier ref="request.queryparam.apikey" type="consumerkey"/> </AccessEntity>
AccessEntity দ্বারা সেট করা ভেরিয়েবল থেকে এনটিটি প্রোফাইল মান পুনরুদ্ধার করতে অন্য একটি পলিসি ব্যবহার করুন।
নিম্নলিখিত উদাহরণে, একটি ExtractVariables পলিসি, AccessEntity দ্বারা পূর্বে সেট করা AccessEntity.GetDeveloperProfile ভেরিয়েবল থেকে একটি মান পুনরুদ্ধার করে।
উল্লেখ্য যে, প্রাপ্ত মানটি XMLPayload এলিমেন্টে একটি XPath এক্সপ্রেশন হিসেবে নির্দিষ্ট করা থাকে। নিষ্কাশিত মানটি একটি developer.email ভেরিয়েবলে রাখা হয়।
<ExtractVariables name="SetDeveloperProfile"> <!-- The source element points to the variable populated by AccessEntity policy. The format is <policy-type>.<policy-name>. In this case, the variable contains the whole developer profile. --> <Source>AccessEntity.GetDeveloperProfile</Source> <VariablePrefix>developer</VariablePrefix> <XMLPayload> <Variable name="email" type="string"> <!-- You parse elements from the developer profile using XPath. --> <XPath>/Developer/Email</XPath> </Variable> </XMLPayload> </ExtractVariables>
নিম্নলিখিত AssignMessage পলিসিটি ExtractVariables পলিসি দ্বারা সেট করা ডেভেলপার ইমেলটি পুনরুদ্ধার করে।
<!-- We'll use this policy to return the variables set in the developer profile, just so that we can easily see them in the response. --> <AssignMessage name="EchoVariables"> <AssignTo createNew="false" type="response"></AssignTo> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <Set> <Headers> <Header name="X-Developer-email">{developer.email}</Header> </Headers> </Set> </AssignMessage>
উপাদান রেফারেন্স
একটি AccessEntity পলিসির কাঠামোর মূল ভিত্তি হলো:
<AccessEntity name="policy_name"> <EntityType value="entity_type"/> <EntityIdentifier ref="entity_identifier" type="identifier_type"/> <SecondaryIdentifier ref="secondary_identifier" type="identifier_type"/> </AccessEntity>
আপনি একই ধরণের একাধিক সত্তাকে একটি Identifiers এলিমেন্টে একত্রিত করে অ্যাক্সেস করতে পারেন:
<AccessEntity name="name_of_the_policy"> <EntityType value="type_of_entity"/> <Identifiers> <Identifier> <EntityIdentifier ref="reference_to_entity_identifier" type*="identifier_type"/> <SecondaryIdentifier ref="reference_to_secondary_entity_identifier" type="identifier_type"/><!-- optional --> </Identifier > <Identifier> <EntityIdentifier ref="reference_to_entity_identifier" type*="identifier_type"/> <SecondaryIdentifier ref="reference_to_secondary_entity_identifier" type="identifier_type"/><!-- optional --> </Identifier > </Identifiers> </AccessEntity>
<অ্যাক্সেসএন্টিটি> অ্যাট্রিবিউট
<AccessEntity async="false" continueOnError="false" enabled="true" name="policy_name">
নিম্নলিখিত সারণী সমস্ত নীতির মূল উপাদানগুলির জন্য সাধারণ বৈশিষ্ট্যগুলি বর্ণনা করে:
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
|---|---|---|---|
name | নীতির অভ্যন্তরীণ নাম। ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে | N/A | প্রয়োজন |
continueOnError | একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে | মিথ্যা | ঐচ্ছিক |
enabled | নীতি প্রয়োগ করতে নীতি বন্ধ করতে | সত্য | ঐচ্ছিক |
async | এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷ | মিথ্যা | অবচয় |
<DisplayName> উপাদান
ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে name বৈশিষ্ট্য ছাড়াও ব্যবহার করুন।
<DisplayName>Policy Display Name</DisplayName>
| ডিফল্ট | N/A আপনি এই উপাদানটি বাদ দিলে, নীতির |
|---|---|
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | স্ট্রিং |
<সত্তা শনাক্তকারী> উপাদান
EntityType-এ প্রদত্ত ধরনের নির্দিষ্ট সত্তাটি (entity) উল্লেখ করে, যা পেতে হবে।
<EntityIdentifier ref="value_variable" type="identifier_type"/>
ডিফল্ট | প্রযোজ্য নয় |
উপস্থিতি | প্রয়োজনীয় |
প্রকার | স্ট্রিং |
বৈশিষ্ট্য
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি | প্রকার |
|---|---|---|---|---|
| রেফারেন্স | যে ভেরিয়েবলটি আইডেন্টিফায়ারের উৎস প্রদান করে, যেমন | প্রযোজ্য নয় | প্রয়োজনীয়। | স্ট্রিং |
| প্রকার | ref অ্যাট্রিবিউটে থাকা ভেরিয়েবলের টাইপ, যেমন consumerkey । ভ্যালুগুলোর তালিকার জন্য এনটিটি টাইপ এবং আইডেন্টিফায়ার দেখুন। | প্রয়োজনীয়। | স্ট্রিং |
উদাহরণ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AccessEntity async="false" continueOnError="false" enabled="true" name="GetCompany"> <DisplayName>GetCompanyProfile</DisplayName> <EntityType value="company"></EntityType> <EntityIdentifier ref="request.queryparam.apikey" type="consumerkey"/> </AccessEntity>
<সত্তার প্রকার> উপাদান
ডেটা স্টোর থেকে কোন ধরনের এনটিটি পুনরুদ্ধার করা হবে তা নির্দিষ্ট করে।
<EntityType value="entity_type"/>
ডিফল্ট | প্রযোজ্য নয় |
উপস্থিতি | প্রয়োজনীয় |
প্রকার | স্ট্রিং |
প্রদত্ত টাইপের কোন এনটিটিটি আপনি চান, তা নির্দিষ্ট করতে একটি EntityIdentifier এলিমেন্ট ব্যবহার করুন। এনটিটি টাইপগুলোর রেফারেন্সের জন্য, এনটিটি টাইপস অ্যান্ড আইডেন্টিফায়ারস দেখুন।
বৈশিষ্ট্য
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি | প্রকার |
|---|---|---|---|---|
| মূল্য | সমর্থিত এনটিটি টাইপগুলোর মধ্যে একটি। তালিকার জন্য এনটিটি টাইপ এবং আইডেন্টিফায়ার দেখুন। | কিছুই না। | প্রয়োজনীয়। | স্ট্রিং |
<সেকেন্ডারিআইডেন্টিফায়ার> উপাদান
EntityIdentifier সাথে একত্রে, প্রদত্ত EntityType এর কাঙ্ক্ষিত ইনস্ট্যান্সটি শনাক্ত করার জন্য একটি মান নির্দিষ্ট করে।
<SecondaryIdentifier ref="value_variable" type="identifier_type"/>
ডিফল্ট | প্রযোজ্য নয় |
উপস্থিতি | ঐচ্ছিক |
প্রকার | স্ট্রিং |
শুধুমাত্র একটি EntityIdentifier নির্দিষ্ট করার সময় SecondaryIdentifier ব্যবহার করলে যে আপনি একটি একক এনটিটি পাবেন, তার কোনো নিশ্চয়তা নেই। আরও তথ্যের জন্য ‘Narrowing results with secondary identifiers’ দেখুন।
একাধিক SecondaryIdentifier এলিমেন্ট ব্যবহার করা সমর্থিত নয়।
বৈশিষ্ট্য
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি | প্রকার |
|---|---|---|---|---|
| রেফারেন্স | যে ভেরিয়েবলটি আইডেন্টিফায়ারের উৎস প্রদান করে, যেমন | প্রযোজ্য নয় | প্রয়োজনীয়। | স্ট্রিং |
| প্রকার | ref অ্যাট্রিবিউটে থাকা ভেরিয়েবলের টাইপ, যেমন consumerkey । ভ্যালুগুলোর তালিকার জন্য এনটিটি টাইপ এবং আইডেন্টিফায়ার দেখুন। | প্রয়োজনীয়। | স্ট্রিং |
উদাহরণ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AccessEntity async="false" continueOnError="false" enabled="true" name="GetAPIProduct"> <DisplayName>GetAPIProduct</DisplayName> <EntityType value="apiproduct"></EntityType> <EntityIdentifier ref="developer.app.name" type="appname"/> <SecondaryIdentifier ref="developer.id" type="developerid"/> </AccessEntity>
ব্যবহারের নির্দেশাবলী
গৌণ শনাক্তকারী ব্যবহার করে ফলাফল সংকুচিত করা
কিছু সত্তার ক্ষেত্রে, আপনার কাঙ্ক্ষিত সত্তাটি খুঁজে পেতে একটিমাত্র শনাক্তকারী যথেষ্ট সুনির্দিষ্ট নাও হতে পারে। সেক্ষেত্রে, ফলাফলকে আরও সীমিত করতে আপনি একটি দ্বিতীয় শনাক্তকারী ব্যবহার করতে পারেন।
আপনার প্রথম, সম্ভবত ব্যাপক নীতি কনফিগারেশনটি দেখতে এইরকম হতে পারে:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AccessEntity async="false" continueOnError="false" enabled="true" name="GetApp"> <DisplayName>GetAppProfile</DisplayName> <EntityType value="apiproduct"></EntityType> <EntityIdentifier ref="request.queryparam.apikey" type="consumerkey"/> </AccessEntity>
যেহেতু একটি অ্যাপ একাধিক API প্রোডাক্টের সাথে যুক্ত থাকতে পারে, তাই শুধু অ্যাপ আইডি ব্যবহার করলে আপনার কাঙ্ক্ষিত API প্রোডাক্টটি নাও পাওয়া যেতে পারে (একাধিক মিলে যাওয়া প্রোডাক্টের মধ্যে আপনি শুধু প্রথমটি পেতে পারেন)।
এর পরিবর্তে, আরও সুনির্দিষ্ট ফলাফল পেতে, আপনি একটি SecondaryIdentifier ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনার ফ্লো-তে appname এবং developerid ভ্যারিয়েবল থাকতে পারে, কারণ একটি OAuth 2.0 এক্সচেঞ্জের সময় এগুলি ডিফল্টরূপে পূরণ হয়ে যায়। অনুরোধকারী অ্যাপের প্রোফাইলের বিবরণ পেতে আপনি একটি AccessEntity পলিসিতে সেই ভ্যারিয়েবলগুলির মান ব্যবহার করতে পারেন।
আপনার আরও সুনির্দিষ্ট পলিসি কনফিগারেশনটি দেখতে এইরকম হতে পারে:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AccessEntity async="false" continueOnError="false" enabled="true" name="GetApp"> <DisplayName>GetAppProfile</DisplayName> <EntityType value="apiproduct"></EntityType> <EntityIdentifier ref="developer.app.name" type="appname"/> <SecondaryIdentifier ref="developer.id" type="developerid"/> </AccessEntity>
সমর্থিত সত্তার প্রকার এবং শনাক্তকারী
AccessEntity নিম্নলিখিত এনটিটি টাইপ এবং আইডেন্টিফায়ারগুলিকে সমর্থন করে।
| সত্তার প্রকার মান | সত্তা শনাক্তকারীর প্রকারভেদ | সেকেন্ডারি আইডেন্টিফায়ার টাইপ |
|---|---|---|
apiproduct | appid | apiresource |
apiproductname | ||
appname | apiresourcedeveloperemaildeveloperidcompanyname | |
consumerkey | apiresource | |
app | appid | |
appname | developeremaildeveloperidcompanyname | |
consumerkey | ||
authorizationcode | authorizationcode | |
company | appid | |
company | ||
consumerkey | ||
companydeveloper | companyname | |
consumerkey | consumerkey | |
consumerkey_scope | consumerkey | |
developer | appid | |
consumerkey | ||
developeremail | ||
developerid | ||
requesttoken | requesttoken | consumerkey |
verifier | verifier |
উদাহরণ সত্তা প্রোফাইল XML
XPath ব্যবহার করে আপনার কাঙ্ক্ষিত এনটিটি প্রোফাইল ভ্যালুটি পেতে হলে, প্রোফাইল XML-এর গঠন সম্পর্কে আপনার কিছু ধারণা থাকা প্রয়োজন। গঠনের একটি উদাহরণের জন্য, আপনার কাঙ্ক্ষিত এনটিটির XML পেতে একটি ম্যানেজমেন্ট API কল ব্যবহার করুন। বিস্তারিত জানতে, ম্যানেজমেন্ট API রেফারেন্স দেখুন।
নিম্নলিখিত বিভাগগুলিতে এপিআই কলের কোড এবং সেই কল থেকে প্রাপ্ত এক্সএমএল-এর উদাহরণ অন্তর্ভুক্ত রয়েছে।
অ্যাপস
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/apps/{app_id} \ -u email:password
এজ ম্যানেজমেন্ট এপিআই রেফারেন্সে অ্যাপ আইডি দ্বারা কোনো অর্গানাইজেশনে অ্যাপ পাওয়ার বিষয়টিও দেখুন।
অথবা:
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/{developer_email}/apps/{app_name} \ -u email:password
Edge ম্যানেজমেন্ট API রেফারেন্সে Get Developer App Details- ও দেখুন।
নমুনা প্রোফাইল:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <App name="thomas-app"> <AccessType>read</AccessType> <ApiProducts/> <Credentials> <Credential> <Attributes/> <ConsumerKey>wrqOOOiPArFI0WRoB1gAJMRbOguekJ5w</ConsumerKey> <ConsumerSecret>WvOhDrJ8m6kzz7Ni</ConsumerSecret> <ApiProducts> <ApiProduct> <Name>FreeProduct</Name> <Status>approved</Status> </ApiProduct> </ApiProducts> <Scopes/> <Status>approved</Status> </Credential> </Credentials> <AppFamily>default</AppFamily> <AppId>ab308c13-bc99-4c50-8434-0e0ed1b86075</AppId> <Attributes> <Attribute> <Name>DisplayName</Name> <Value>Tom's Weather App</Value> </Attribute> </Attributes> <CallbackUrl>http://tom.app/login</CallbackUrl> <CreatedAt>1362502872727</CreatedAt> <CreatedBy>admin@apigee.com</CreatedBy> <DeveloperId>PFK8IwOeAOW01JKA</DeveloperId> <LastModifiedAt>1362502872727</LastModifiedAt> <LastModifiedBy>admin@apigee.com</LastModifiedBy> <Scopes/> <Status>approved</Status> </App>
এপিআই পণ্য
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/apiproducts/{apiproduct_name} \ -u email:password
Edge ম্যানেজমেন্ট API রেফারেন্সে Get API Product- ও দেখুন।
নমুনা XPath, যা weather_free নামের API প্রোডাক্ট থেকে দ্বিতীয় API রিসোর্স (URI) পুনরুদ্ধার করে:
/ApiProduct['@name=weather_free']/ApiResources/ApiResource[1]/text()
নমুনা প্রোফাইল XML হিসাবে ফেরত দেওয়া হয়েছে:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ApiProduct name="weather_free"> <ApiResources> <ApiResource>/forecastrss, /reports</ApiResource> </ApiResources> <ApprovalType>auto</ApprovalType> <Attributes> <Attribute> <Name>description</Name> <Value>Introductory API Product</Value> </Attribute> <Attribute> <Name>developer.quota.interval</Name> <Value>1</Value> </Attribute> <Attribute> <Name>developer.quota.limit</Name> <Value>1</Value> </Attribute> <Attribute> <Name>developer.quota.timeunit</Name> <Value>minute</Value> </Attribute> <Attribute> <Name>servicePlan</Name> <Value>Introductory</Value> </Attribute> </Attributes> <CreatedAt>1355847839224</CreatedAt> <CreatedBy>andrew@apigee.com</CreatedBy> <Description>Free API Product</Description> <DisplayName>Free API Product</DisplayName> <Environments/> <LastModifiedAt>1355847839224</LastModifiedAt> <LastModifiedBy>andrew@apigee.com</LastModifiedBy> <Proxies/> <Scopes/> </ApiProduct>
কোম্পানি
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/companies/{company_name} \ -u email:password
Edge ম্যানেজমেন্ট API রেফারেন্সে Get Company Details- ও দেখুন।
নমুনা প্রোফাইল:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Company name="theramin"> <Apps/> <DisplayName>Theramin Corporation</DisplayName> <Organization>apigee-pm</Organization> <Status>active</Status> <Attributes> <Attribute> <Name>billing_code</Name> <Value>13648765</Value> </Attribute> </Attributes> <CreatedAt>1349208631291</CreatedAt> <CreatedBy>andrew@apigee.com</CreatedBy> <LastModifiedAt>1349208631291</LastModifiedAt> <LastModifiedBy>andrew@apigee.com</LastModifiedBy> </Company>
কোম্পানি ডেভেলপার
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/companies/{company_name}/developers/{developer_name} \ -u email:password
নমুনা প্রোফাইল:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Developers> <Developer> <Email>ntesla@theramin.com</Email> <Role>developer</Role> </Developer> </Developers>
ভোক্তা মূল
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/{developer_email}/apps/{app_name}/keys/{consumer_key} \ -u email:password
Edge ম্যানেজমেন্ট API রেফারেন্সে একটি ডেভেলপার অ্যাপের জন্য মূল বিবরণ পেতেও দেখুন।
নমুনা XPath:
/Credential/ApiProducts/ApiProduct[Name='weather_free']/Status/text()
নমুনা প্রোফাইল:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Credential>
<Attributes/>
<ConsumerKey>XLotL3PRxNkUGXhGAFDPOr6fqtvAhuZe</ConsumerKey>
<ConsumerSecret>iNUyEaOOh96KR3YL</ConsumerSecret>
<ApiProducts>
<ApiProduct>
<Name>weather_free</Name>
<Status>approved</Status>
</ApiProduct>
</ApiProducts>
<Scopes/>
<Status>approved</Status>
</Credential>ডেভেলপার
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/{developer_email} \ -u email:password
Edge ম্যানেজমেন্ট API রেফারেন্সে Get Developer অংশটিও দেখুন।
নমুনা XPath:
/Developer/Attributes/Attribute[Name='my_custom_attribute']/Value/text()
/Developer/Email/text()
নমুনা প্রোফাইল:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Developer> <Apps> <App>weatherappx</App> <App>weatherapp</App> </Apps> <Email>ntesla@theramin.com</Email> <DeveloperId>4Y4xd0KRZ1wmHJqu</DeveloperId> <FirstName>Nikola</FirstName> <LastName>Tesla</LastName> <UserName>theramin</UserName> <OrganizationName>apigee-pm</OrganizationName> <Status>active</Status> <Attributes> <Attribute> <Name>project_type</Name> <Value>public</Value> </Attribute> </Attributes> <CreatedAt>1349797040634</CreatedAt> <CreatedBy>rsaha@apigee.com</CreatedBy> <LastModifiedAt>1349797040634</LastModifiedAt> <LastModifiedBy>rsaha@apigee.com</LastModifiedBy> </Developer>
প্রবাহ পরিবর্তনশীল
যখন AccessEntity পলিসিতে নির্দিষ্ট করা এনটিটি প্রোফাইলটি পুনরুদ্ধার করা হয়, তখন XML-ফরম্যাট করা প্রোফাইল অবজেক্টটি একটি ভেরিয়েবল হিসেবে মেসেজ কনটেক্সটে যুক্ত হয়। ভেরিয়েবলের নাম উল্লেখ করে এটিকে অন্য যেকোনো ভেরিয়েবলের মতোই অ্যাক্সেস করা যায়। ব্যবহারকারীর দেওয়া AccessEntity পলিসির নামটি ভেরিয়েবলের নামের ভেরিয়েবল প্রিফিক্স হিসেবে সেট করা হয়।
উদাহরণস্বরূপ, যদি GetDeveloper নামের একটি AccessEntity পলিসি এক্সিকিউট করা হয়, তাহলে XML-ফরম্যাট করা প্রোফাইলটি AccessEntity.GetDeveloper নামের ভেরিয়েবলে সংরক্ষিত হয়। এরপর, ExtractVariables পলিসিতে সংজ্ঞায়িত একটি XPath ব্যবহার করে XML-ফরম্যাট করা প্রোফাইলটি পার্স করা যেতে পারে, যেখানে উৎস হিসেবে AccessEntity.GetDeveloper নির্দিষ্ট করা থাকে।
ত্রুটির রেফারেন্স
সম্পর্কিত তথ্যের জন্য, নীতি ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার কী জানা দরকার তা দেখুন৷
রানটাইম ত্রুটি
কোনোটিই নয়।
স্থাপনার ত্রুটি
| ত্রুটির নাম | ফল্ট স্ট্রিং | HTTP স্থিতি | ঘটে যখন |
|---|---|---|---|
InvalidEntityType | Invalid type [entity_type] in ACCESSENTITYStepDefinition [policy_name] | N/A | ব্যবহৃত সত্তা টাইপ সমর্থিত প্রকারগুলির মধ্যে একটি হতে হবে৷ |
সম্পর্কিত বিষয়
-
ExtractVariables: ভেরিয়েবল নিষ্কাশন নীতি -
AssignMessage: বার্তা বরাদ্দ নীতি
আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
![]()
কী
Apigee Edge ডেটা স্টোর থেকে আপনার নির্দিষ্ট করা এনটিটি প্রোফাইলগুলো পুনরুদ্ধার করে। পলিসিটি প্রোফাইলটিকে একটি ভেরিয়েবলে রাখে, যার নাম AccessEntity.{policy_name} ফরম্যাট অনুসরণ করে। আপনি নিম্নলিখিত এনটিটিগুলোর প্রোফাইল অ্যাক্সেস করতে AccessEntity ব্যবহার করতে পারেন:
- অ্যাপ
- এপিআই পণ্য
- কোম্পানি
- কোম্পানি ডেভেলপার
- ভোক্তা মূল
- ডেভেলপার
AccessEntity পলিসিটি একটি পলিসি-ভিত্তিক রানটাইম ডাটাবেস লুকআপ হিসেবে কাজ করে। এই পলিসি থেকে প্রাপ্ত প্রোফাইল তথ্য ব্যবহার করে আপনি ডাইনামিক আচরণ, যেমন—শর্তসাপেক্ষ এন্ডপয়েন্ট রাউটিং, ফ্লো এক্সিকিউশন এবং পলিসি এনফোর্সমেন্ট সক্রিয় করতে পারেন।
আপনি এনটিটি প্রোফাইল ডেটা XML হিসেবে পেতে এবং একটি ভেরিয়েবলে রাখতে AccessEntity পলিসি ব্যবহার করেন। আপনি যে এনটিটিটি পেতে চান, সেটিকে একটি এনটিটি টাইপ এবং এক বা একাধিক আইডেন্টিফায়ার উল্লেখ করে শনাক্ত করেন, যা নির্দিষ্ট করে যে আপনি সেই টাইপের কোন এনটিটিটি চান। পরবর্তীতে, অন্য কোনো পলিসিতে, আপনি ExtractVariables পলিসি বা AssignMessage পলিসির মতো অন্য কোনো পলিসি ব্যবহার করে সেই এনটিটি প্রোফাইল ডেটা পুনরুদ্ধার করতে পারেন।
নমুনা
নিম্নলিখিত নমুনাগুলিতে দেখানো হয়েছে AccessEntity ExtractVariables এবং AssignMessage পলিসিগুলির সাথে একত্রে ব্যবহার করে একজন ডেভেলপারের ইমেল বের করে HTTP হেডারে যোগ করা হয়।
অন্যান্য নীতিতে ব্যবহারের জন্য ডেভেলপারদের ইমেল সংগ্রহ করা
Edge থেকে কোন এনটিটি প্রোফাইলটি নেওয়া হবে এবং প্রোফাইলের ডেটা কোথায় রাখা হবে, তা নির্দিষ্ট করতে AccessEntity পলিসি সেট আপ করুন।
নিম্নলিখিত উদাহরণে, পলিসিটি ডেভেলপারকে শনাক্ত করার জন্য কোয়েরি প্যারাম হিসেবে পাঠানো একটি এপিআই কী ব্যবহার করে developer এনটিটি প্রোফাইল সংগ্রহ করে। প্রোফাইলটি এমন একটি ভেরিয়েবলে রাখা হয় যার নাম AccessEntity.{policy_name} আকারে থাকে। সুতরাং, এই পলিসি দ্বারা সেট করা ভেরিয়েবলটি হবে AccessEntity.GetDeveloperProfile ।
<AccessEntity name="GetDeveloperProfile"> <!-- This is the type entity whose profile we need to pull from the Edge datastore. --> <EntityType value="developer"/> <!-- We tell the policy to use the API key (presented as query parameter) to identify the developer. --> <EntityIdentifier ref="request.queryparam.apikey" type="consumerkey"/> </AccessEntity>
AccessEntity দ্বারা সেট করা ভেরিয়েবল থেকে এনটিটি প্রোফাইল মান পুনরুদ্ধার করতে অন্য একটি পলিসি ব্যবহার করুন।
নিম্নলিখিত উদাহরণে, একটি ExtractVariables পলিসি, AccessEntity দ্বারা পূর্বে সেট করা AccessEntity.GetDeveloperProfile ভেরিয়েবল থেকে একটি মান পুনরুদ্ধার করে।
উল্লেখ্য যে, প্রাপ্ত মানটি XMLPayload এলিমেন্টে একটি XPath এক্সপ্রেশন হিসেবে নির্দিষ্ট করা থাকে। নিষ্কাশিত মানটি একটি developer.email ভেরিয়েবলে রাখা হয়।
<ExtractVariables name="SetDeveloperProfile"> <!-- The source element points to the variable populated by AccessEntity policy. The format is <policy-type>.<policy-name>. In this case, the variable contains the whole developer profile. --> <Source>AccessEntity.GetDeveloperProfile</Source> <VariablePrefix>developer</VariablePrefix> <XMLPayload> <Variable name="email" type="string"> <!-- You parse elements from the developer profile using XPath. --> <XPath>/Developer/Email</XPath> </Variable> </XMLPayload> </ExtractVariables>
নিম্নলিখিত AssignMessage পলিসিটি ExtractVariables পলিসি দ্বারা সেট করা ডেভেলপার ইমেলটি পুনরুদ্ধার করে।
<!-- We'll use this policy to return the variables set in the developer profile, just so that we can easily see them in the response. --> <AssignMessage name="EchoVariables"> <AssignTo createNew="false" type="response"></AssignTo> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <Set> <Headers> <Header name="X-Developer-email">{developer.email}</Header> </Headers> </Set> </AssignMessage>
উপাদান রেফারেন্স
একটি AccessEntity পলিসির কাঠামোর মূল ভিত্তি হলো:
<AccessEntity name="policy_name"> <EntityType value="entity_type"/> <EntityIdentifier ref="entity_identifier" type="identifier_type"/> <SecondaryIdentifier ref="secondary_identifier" type="identifier_type"/> </AccessEntity>
আপনি একই ধরণের একাধিক সত্তাকে একটি Identifiers এলিমেন্টে একত্রিত করে অ্যাক্সেস করতে পারেন:
<AccessEntity name="name_of_the_policy"> <EntityType value="type_of_entity"/> <Identifiers> <Identifier> <EntityIdentifier ref="reference_to_entity_identifier" type*="identifier_type"/> <SecondaryIdentifier ref="reference_to_secondary_entity_identifier" type="identifier_type"/><!-- optional --> </Identifier > <Identifier> <EntityIdentifier ref="reference_to_entity_identifier" type*="identifier_type"/> <SecondaryIdentifier ref="reference_to_secondary_entity_identifier" type="identifier_type"/><!-- optional --> </Identifier > </Identifiers> </AccessEntity>
<অ্যাক্সেসএন্টিটি> অ্যাট্রিবিউট
<AccessEntity async="false" continueOnError="false" enabled="true" name="policy_name">
নিম্নলিখিত সারণী সমস্ত নীতির মূল উপাদানগুলির জন্য সাধারণ বৈশিষ্ট্যগুলি বর্ণনা করে:
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
|---|---|---|---|
name | নীতির অভ্যন্তরীণ নাম। ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে | N/A | প্রয়োজন |
continueOnError | একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে | মিথ্যা | ঐচ্ছিক |
enabled | নীতি প্রয়োগ করতে নীতি বন্ধ করতে | সত্য | ঐচ্ছিক |
async | এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷ | মিথ্যা | অবচয় |
<DisplayName> উপাদান
ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে name বৈশিষ্ট্য ছাড়াও ব্যবহার করুন।
<DisplayName>Policy Display Name</DisplayName>
| ডিফল্ট | N/A আপনি এই উপাদানটি বাদ দিলে, নীতির |
|---|---|
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | স্ট্রিং |
<সত্তা শনাক্তকারী> উপাদান
EntityType-এ প্রদত্ত ধরনের নির্দিষ্ট সত্তাটি (entity) উল্লেখ করে, যা পেতে হবে।
<EntityIdentifier ref="value_variable" type="identifier_type"/>
ডিফল্ট | প্রযোজ্য নয় |
উপস্থিতি | প্রয়োজনীয় |
প্রকার | স্ট্রিং |
বৈশিষ্ট্য
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি | প্রকার |
|---|---|---|---|---|
| রেফারেন্স | যে ভেরিয়েবলটি আইডেন্টিফায়ারের উৎস প্রদান করে, যেমন | প্রযোজ্য নয় | প্রয়োজনীয়। | স্ট্রিং |
| প্রকার | ref অ্যাট্রিবিউটে থাকা ভেরিয়েবলের টাইপ, যেমন consumerkey । ভ্যালুগুলোর তালিকার জন্য এনটিটি টাইপ এবং আইডেন্টিফায়ার দেখুন। | প্রয়োজনীয়। | স্ট্রিং |
উদাহরণ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AccessEntity async="false" continueOnError="false" enabled="true" name="GetCompany"> <DisplayName>GetCompanyProfile</DisplayName> <EntityType value="company"></EntityType> <EntityIdentifier ref="request.queryparam.apikey" type="consumerkey"/> </AccessEntity>
<সত্তার প্রকার> উপাদান
ডেটা স্টোর থেকে কোন ধরনের এনটিটি পুনরুদ্ধার করা হবে তা নির্দিষ্ট করে।
<EntityType value="entity_type"/>
ডিফল্ট | প্রযোজ্য নয় |
উপস্থিতি | প্রয়োজনীয় |
প্রকার | স্ট্রিং |
প্রদত্ত টাইপের কোন এনটিটিটি আপনি চান, তা নির্দিষ্ট করতে একটি EntityIdentifier এলিমেন্ট ব্যবহার করুন। এনটিটি টাইপগুলোর রেফারেন্সের জন্য, এনটিটি টাইপস অ্যান্ড আইডেন্টিফায়ারস দেখুন।
বৈশিষ্ট্য
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি | প্রকার |
|---|---|---|---|---|
| মূল্য | সমর্থিত এনটিটি টাইপগুলোর মধ্যে একটি। তালিকার জন্য এনটিটি টাইপ এবং আইডেন্টিফায়ার দেখুন। | কিছুই না। | প্রয়োজনীয়। | স্ট্রিং |
<সেকেন্ডারিআইডেন্টিফায়ার> উপাদান
EntityIdentifier সাথে একত্রে, প্রদত্ত EntityType এর কাঙ্ক্ষিত ইনস্ট্যান্সটি শনাক্ত করার জন্য একটি মান নির্দিষ্ট করে।
<SecondaryIdentifier ref="value_variable" type="identifier_type"/>
ডিফল্ট | প্রযোজ্য নয় |
উপস্থিতি | ঐচ্ছিক |
প্রকার | স্ট্রিং |
শুধুমাত্র একটি EntityIdentifier নির্দিষ্ট করার সময় SecondaryIdentifier ব্যবহার করলে যে আপনি একটি একক এনটিটি পাবেন, তার কোনো নিশ্চয়তা নেই। আরও তথ্যের জন্য ‘Narrowing results with secondary identifiers’ দেখুন।
একাধিক SecondaryIdentifier এলিমেন্ট ব্যবহার করা সমর্থিত নয়।
বৈশিষ্ট্য
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি | প্রকার |
|---|---|---|---|---|
| রেফারেন্স | যে ভেরিয়েবলটি আইডেন্টিফায়ারের উৎস প্রদান করে, যেমন | প্রযোজ্য নয় | প্রয়োজনীয়। | স্ট্রিং |
| প্রকার | ref অ্যাট্রিবিউটে থাকা ভেরিয়েবলের টাইপ, যেমন consumerkey । ভ্যালুগুলোর তালিকার জন্য এনটিটি টাইপ এবং আইডেন্টিফায়ার দেখুন। | প্রয়োজনীয়। | স্ট্রিং |
উদাহরণ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AccessEntity async="false" continueOnError="false" enabled="true" name="GetAPIProduct"> <DisplayName>GetAPIProduct</DisplayName> <EntityType value="apiproduct"></EntityType> <EntityIdentifier ref="developer.app.name" type="appname"/> <SecondaryIdentifier ref="developer.id" type="developerid"/> </AccessEntity>
ব্যবহারের নির্দেশাবলী
গৌণ শনাক্তকারী ব্যবহার করে ফলাফল সংকুচিত করা
কিছু সত্তার ক্ষেত্রে, আপনার কাঙ্ক্ষিত সত্তাটি খুঁজে পেতে একটিমাত্র শনাক্তকারী যথেষ্ট সুনির্দিষ্ট নাও হতে পারে। সেক্ষেত্রে, ফলাফলকে আরও সীমিত করতে আপনি একটি দ্বিতীয় শনাক্তকারী ব্যবহার করতে পারেন।
আপনার প্রথম, সম্ভবত ব্যাপক নীতি কনফিগারেশনটি দেখতে এইরকম হতে পারে:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AccessEntity async="false" continueOnError="false" enabled="true" name="GetApp"> <DisplayName>GetAppProfile</DisplayName> <EntityType value="apiproduct"></EntityType> <EntityIdentifier ref="request.queryparam.apikey" type="consumerkey"/> </AccessEntity>
যেহেতু একটি অ্যাপ একাধিক API প্রোডাক্টের সাথে যুক্ত থাকতে পারে, তাই শুধু অ্যাপ আইডি ব্যবহার করলে আপনার কাঙ্ক্ষিত API প্রোডাক্টটি নাও পাওয়া যেতে পারে (একাধিক মিলে যাওয়া প্রোডাক্টের মধ্যে আপনি শুধু প্রথমটি পেতে পারেন)।
এর পরিবর্তে, আরও সুনির্দিষ্ট ফলাফল পেতে, আপনি একটি SecondaryIdentifier ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনার ফ্লো-তে appname এবং developerid ভ্যারিয়েবল থাকতে পারে, কারণ একটি OAuth 2.0 এক্সচেঞ্জের সময় এগুলি ডিফল্টরূপে পূরণ হয়ে যায়। অনুরোধকারী অ্যাপের প্রোফাইলের বিবরণ পেতে আপনি একটি AccessEntity পলিসিতে সেই ভ্যারিয়েবলগুলির মান ব্যবহার করতে পারেন।
আপনার আরও সুনির্দিষ্ট পলিসি কনফিগারেশনটি দেখতে এইরকম হতে পারে:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AccessEntity async="false" continueOnError="false" enabled="true" name="GetApp"> <DisplayName>GetAppProfile</DisplayName> <EntityType value="apiproduct"></EntityType> <EntityIdentifier ref="developer.app.name" type="appname"/> <SecondaryIdentifier ref="developer.id" type="developerid"/> </AccessEntity>
সমর্থিত সত্তার প্রকার এবং শনাক্তকারী
AccessEntity নিম্নলিখিত এনটিটি টাইপ এবং আইডেন্টিফায়ারগুলিকে সমর্থন করে।
| সত্তার প্রকার মান | সত্তা শনাক্তকারীর প্রকারভেদ | সেকেন্ডারি আইডেন্টিফায়ার টাইপ |
|---|---|---|
apiproduct | appid | apiresource |
apiproductname | ||
appname | apiresourcedeveloperemaildeveloperidcompanyname | |
consumerkey | apiresource | |
app | appid | |
appname | developeremaildeveloperidcompanyname | |
consumerkey | ||
authorizationcode | authorizationcode | |
company | appid | |
company | ||
consumerkey | ||
companydeveloper | companyname | |
consumerkey | consumerkey | |
consumerkey_scope | consumerkey | |
developer | appid | |
consumerkey | ||
developeremail | ||
developerid | ||
requesttoken | requesttoken | consumerkey |
verifier | verifier |
উদাহরণ সত্তা প্রোফাইল XML
XPath ব্যবহার করে আপনার কাঙ্ক্ষিত এনটিটি প্রোফাইল ভ্যালুটি পেতে হলে, প্রোফাইল XML-এর গঠন সম্পর্কে আপনার কিছু ধারণা থাকা প্রয়োজন। গঠনের একটি উদাহরণের জন্য, আপনার কাঙ্ক্ষিত এনটিটির XML পেতে একটি ম্যানেজমেন্ট API কল ব্যবহার করুন। বিস্তারিত জানতে, ম্যানেজমেন্ট API রেফারেন্স দেখুন।
নিম্নলিখিত বিভাগগুলিতে এপিআই কলের কোড এবং সেই কল থেকে প্রাপ্ত এক্সএমএল-এর উদাহরণ অন্তর্ভুক্ত রয়েছে।
অ্যাপস
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/apps/{app_id} \ -u email:password
এজ ম্যানেজমেন্ট এপিআই রেফারেন্সে অ্যাপ আইডি দ্বারা কোনো অর্গানাইজেশনে অ্যাপ পাওয়ার বিষয়টিও দেখুন।
অথবা:
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/{developer_email}/apps/{app_name} \ -u email:password
Edge ম্যানেজমেন্ট API রেফারেন্সে Get Developer App Details- ও দেখুন।
নমুনা প্রোফাইল:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <App name="thomas-app"> <AccessType>read</AccessType> <ApiProducts/> <Credentials> <Credential> <Attributes/> <ConsumerKey>wrqOOOiPArFI0WRoB1gAJMRbOguekJ5w</ConsumerKey> <ConsumerSecret>WvOhDrJ8m6kzz7Ni</ConsumerSecret> <ApiProducts> <ApiProduct> <Name>FreeProduct</Name> <Status>approved</Status> </ApiProduct> </ApiProducts> <Scopes/> <Status>approved</Status> </Credential> </Credentials> <AppFamily>default</AppFamily> <AppId>ab308c13-bc99-4c50-8434-0e0ed1b86075</AppId> <Attributes> <Attribute> <Name>DisplayName</Name> <Value>Tom's Weather App</Value> </Attribute> </Attributes> <CallbackUrl>http://tom.app/login</CallbackUrl> <CreatedAt>1362502872727</CreatedAt> <CreatedBy>admin@apigee.com</CreatedBy> <DeveloperId>PFK8IwOeAOW01JKA</DeveloperId> <LastModifiedAt>1362502872727</LastModifiedAt> <LastModifiedBy>admin@apigee.com</LastModifiedBy> <Scopes/> <Status>approved</Status> </App>
এপিআই পণ্য
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/apiproducts/{apiproduct_name} \ -u email:password
Edge ম্যানেজমেন্ট API রেফারেন্সে Get API Product- ও দেখুন।
নমুনা XPath, যা weather_free নামের API প্রোডাক্ট থেকে দ্বিতীয় API রিসোর্স (URI) পুনরুদ্ধার করে:
/ApiProduct['@name=weather_free']/ApiResources/ApiResource[1]/text()
নমুনা প্রোফাইল XML হিসাবে ফেরত দেওয়া হয়েছে:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ApiProduct name="weather_free"> <ApiResources> <ApiResource>/forecastrss, /reports</ApiResource> </ApiResources> <ApprovalType>auto</ApprovalType> <Attributes> <Attribute> <Name>description</Name> <Value>Introductory API Product</Value> </Attribute> <Attribute> <Name>developer.quota.interval</Name> <Value>1</Value> </Attribute> <Attribute> <Name>developer.quota.limit</Name> <Value>1</Value> </Attribute> <Attribute> <Name>developer.quota.timeunit</Name> <Value>minute</Value> </Attribute> <Attribute> <Name>servicePlan</Name> <Value>Introductory</Value> </Attribute> </Attributes> <CreatedAt>1355847839224</CreatedAt> <CreatedBy>andrew@apigee.com</CreatedBy> <Description>Free API Product</Description> <DisplayName>Free API Product</DisplayName> <Environments/> <LastModifiedAt>1355847839224</LastModifiedAt> <LastModifiedBy>andrew@apigee.com</LastModifiedBy> <Proxies/> <Scopes/> </ApiProduct>
কোম্পানি
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/companies/{company_name} \ -u email:password
Edge ম্যানেজমেন্ট API রেফারেন্সে Get Company Details- ও দেখুন।
নমুনা প্রোফাইল:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Company name="theramin"> <Apps/> <DisplayName>Theramin Corporation</DisplayName> <Organization>apigee-pm</Organization> <Status>active</Status> <Attributes> <Attribute> <Name>billing_code</Name> <Value>13648765</Value> </Attribute> </Attributes> <CreatedAt>1349208631291</CreatedAt> <CreatedBy>andrew@apigee.com</CreatedBy> <LastModifiedAt>1349208631291</LastModifiedAt> <LastModifiedBy>andrew@apigee.com</LastModifiedBy> </Company>
কোম্পানি ডেভেলপার
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/companies/{company_name}/developers/{developer_name} \ -u email:password
নমুনা প্রোফাইল:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Developers> <Developer> <Email>ntesla@theramin.com</Email> <Role>developer</Role> </Developer> </Developers>
ভোক্তা মূল
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/{developer_email}/apps/{app_name}/keys/{consumer_key} \ -u email:password
Edge ম্যানেজমেন্ট API রেফারেন্সে একটি ডেভেলপার অ্যাপের জন্য মূল বিবরণ পেতেও দেখুন।
নমুনা XPath:
/Credential/ApiProducts/ApiProduct[Name='weather_free']/Status/text()
নমুনা প্রোফাইল:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Credential>
<Attributes/>
<ConsumerKey>XLotL3PRxNkUGXhGAFDPOr6fqtvAhuZe</ConsumerKey>
<ConsumerSecret>iNUyEaOOh96KR3YL</ConsumerSecret>
<ApiProducts>
<ApiProduct>
<Name>weather_free</Name>
<Status>approved</Status>
</ApiProduct>
</ApiProducts>
<Scopes/>
<Status>approved</Status>
</Credential>ডেভেলপার
$ curl -H "Accept:text/xml" -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/{developer_email} \ -u email:password
Edge ম্যানেজমেন্ট API রেফারেন্সে Get Developer অংশটিও দেখুন।
নমুনা XPath:
/Developer/Attributes/Attribute[Name='my_custom_attribute']/Value/text()
/Developer/Email/text()
নমুনা প্রোফাইল:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Developer> <Apps> <App>weatherappx</App> <App>weatherapp</App> </Apps> <Email>ntesla@theramin.com</Email> <DeveloperId>4Y4xd0KRZ1wmHJqu</DeveloperId> <FirstName>Nikola</FirstName> <LastName>Tesla</LastName> <UserName>theramin</UserName> <OrganizationName>apigee-pm</OrganizationName> <Status>active</Status> <Attributes> <Attribute> <Name>project_type</Name> <Value>public</Value> </Attribute> </Attributes> <CreatedAt>1349797040634</CreatedAt> <CreatedBy>rsaha@apigee.com</CreatedBy> <LastModifiedAt>1349797040634</LastModifiedAt> <LastModifiedBy>rsaha@apigee.com</LastModifiedBy> </Developer>
প্রবাহ পরিবর্তনশীল
যখন AccessEntity পলিসিতে নির্দিষ্ট করা এনটিটি প্রোফাইলটি পুনরুদ্ধার করা হয়, তখন XML-ফরম্যাট করা প্রোফাইল অবজেক্টটি একটি ভেরিয়েবল হিসেবে মেসেজ কনটেক্সটে যুক্ত হয়। ভেরিয়েবলের নাম উল্লেখ করে এটিকে অন্য যেকোনো ভেরিয়েবলের মতোই অ্যাক্সেস করা যায়। ব্যবহারকারীর দেওয়া AccessEntity পলিসির নামটি ভেরিয়েবলের নামের ভেরিয়েবল প্রিফিক্স হিসেবে সেট করা হয়।
উদাহরণস্বরূপ, যদি GetDeveloper নামের একটি AccessEntity পলিসি এক্সিকিউট করা হয়, তাহলে XML-ফরম্যাট করা প্রোফাইলটি AccessEntity.GetDeveloper নামের ভেরিয়েবলে সংরক্ষিত হয়। এরপর, ExtractVariables পলিসিতে সংজ্ঞায়িত একটি XPath ব্যবহার করে XML-ফরম্যাট করা প্রোফাইলটি পার্স করা যেতে পারে, যেখানে উৎস হিসেবে AccessEntity.GetDeveloper নির্দিষ্ট করা থাকে।
ত্রুটির রেফারেন্স
সম্পর্কিত তথ্যের জন্য, নীতি ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার কী জানা দরকার তা দেখুন৷
রানটাইম ত্রুটি
কোনোটিই নয়।
স্থাপনার ত্রুটি
| ত্রুটির নাম | ফল্ট স্ট্রিং | HTTP স্থিতি | ঘটে যখন |
|---|---|---|---|
InvalidEntityType | Invalid type [entity_type] in ACCESSENTITYStepDefinition [policy_name] | N/A | ব্যবহৃত সত্তা টাইপ সমর্থিত প্রকারগুলির মধ্যে একটি হতে হবে৷ |
সম্পর্কিত বিষয়
-
ExtractVariables: ভেরিয়েবল নিষ্কাশন নীতি -
AssignMessage: বার্তা বরাদ্দ নীতি