أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
يوضّح هذا القسم كيفية استخدام Edge API لإنشاء منتجات API لنشرها في بوابات المطوّرين.
إنشاء منتجات واجهة برمجة التطبيقات باستخدام واجهة برمجة التطبيقات
تتيح منتجات واجهة برمجة التطبيقات للمطوّرين تسجيل التطبيقات التي تستخدم واجهات برمجة التطبيقات باستخدام مفاتيح واجهة برمجة التطبيقات ورموز الدخول المميزة OAuth. تم تصميم منتجات واجهة برمجة التطبيقات لتمكينك من "تجميع" موارد واجهة برمجة التطبيقات ثم نشر هذه الحِزم إلى مجموعات مختلفة من المطوّرين. على سبيل المثال، قد تحتاج إلى نشر مجموعة من موارد واجهة برمجة التطبيقات للمطوّرين الشركاء، بينما تنشر حزمة أخرى للمطوّرين الخارجيين. تتيح لك منتجات واجهة برمجة التطبيقات إجراء عملية التجميع هذه أثناء التنفيذ، بدون الحاجة إلى إجراء أي تغييرات على واجهات برمجة التطبيقات نفسها. ومن المزايا الإضافية أنّه يمكن "ترقية" و"خفض مستوى" إذن الوصول الممنوح للمطوّرين بدون الحاجة إلى أن يحصل المطوّرون على مفاتيح مستهلكين جديدة لتطبيقاتهم.
لإنشاء منتج API باستخدام واجهة برمجة التطبيقات، أرسِل طلب POST إلى
/organizations/{org_name}/apiproducts.
لمزيد من المعلومات، يُرجى الاطّلاع على مرجع واجهة برمجة التطبيقات إنشاء منتج API.
ينشئ الطلب التالي منتجًا من منتجات واجهة برمجة التطبيقات باسم weather_free. يتيح منتج واجهة برمجة التطبيقات الوصول إلى جميع واجهات برمجة التطبيقات التي يعرضها خادم وكيل واجهة برمجة التطبيقات المسمّى weatherapi والذي تم نشره في بيئة test. تم ضبط نوع الموافقة على auto، ما يشير إلى أنّه ستتم الموافقة على أي طلب للوصول.
curl -X POST https://api.enterprise.apigee.com/v1/organization/myorg/apiproducts \
-H "Content-Type:application/json" \
-d \
'{
"approvalType": "auto",
"displayName": "Free API Product",
"name": "weather_free",
"proxies": [ "weatherapi" ],
"environments": [ "test" ]
}' \
-u email:password
نموذج إجابة:
{ "apiResources" : [ ], "approvalType" : "auto", "attributes" : [ ], "createdAt" : 1362759663145, "createdBy" : "developer@apigee.com", "displayName" : "Free API Product", "environments" : [ "test" ], "lastModifiedAt" : 1362759663145, "lastModifiedBy" : "developer@apigee.com", "name" : "weather_free", "proxies" : [ "weatherapi" ], "scopes" : [ ] }
يُنفِّذ منتج واجهة برمجة التطبيقات الذي تم إنشاؤه أعلاه السيناريو الأساسي، وهو تفويض الطلبات إلى خادم وكيل لواجهة برمجة التطبيقات في بيئة. تحدّد هذه السياسة منتج واجهة برمجة تطبيقات يتيح لتطبيق معتمَد الوصول إلى أي موارد لواجهة برمجة التطبيقات يتم الوصول إليها من خلال خادم وكيل لواجهة برمجة التطبيقات يعمل في بيئة الاختبار. تعرض منتجات واجهة برمجة التطبيقات إعدادات ضبط إضافية تتيح لك تخصيص عناصر التحكّم في الوصول إلى واجهات برمجة التطبيقات لمجموعات مطوّرين مختلفة. على سبيل المثال، يمكنك إنشاء منتجَين من منتجات واجهة برمجة التطبيقات يتيحان الوصول إلى خوادم وكيلة مختلفة لواجهة برمجة التطبيقات. يمكنك أيضًا إنشاء منتجَين من منتجات واجهة برمجة التطبيقات يتيحان الوصول إلى وكلاء واجهة برمجة التطبيقات نفسها، ولكن بإعدادات حصة مختلفة مرتبطة بهما.
إعدادات ضبط منتج واجهة برمجة التطبيقات
تعرض منتجات واجهة برمجة التطبيقات خيارات الإعداد التالية:
| الاسم | الوصف | تلقائي | مطلوب؟ |
|---|---|---|---|
apiResources |
قائمة قيم مفصولة بفاصلة من معرّفات الموارد المنتظمة (URI) أو مسارات الموارد، ويتم "تجميعها" في منتج API. يتم تلقائيًا ربط مسارات الموارد بالمتغيّر يمكنك اختيار مسار معيّن، أو يمكنك اختيار جميع المسارات الفرعية باستخدام حرف بدل.
يمكن استخدام أحرف البدل (/** و /*). يشير حرف البدل المكوّن من نجمتَين إلى أنّه تم تضمين جميع المعرّفات الفرعية للموارد الموحّدة (URI). تشير علامة النجمة المفردة إلى أنّه يتم تضمين معرّفات الموارد الموحّدة (URI) ذات المستوى الأدنى فقط. |
لا ينطبق | لا |
approvalType |
تحدّد هذه السمة كيفية الموافقة على مفاتيح واجهة برمجة التطبيقات للوصول إلى واجهات برمجة التطبيقات المحدّدة في منتج واجهة برمجة التطبيقات. إذا تم ضبطها على manual، سيكون المفتاح الذي تم إنشاؤه للتطبيق في الحالة "في انتظار المراجعة".
ولن تعمل هذه المفاتيح إلا بعد الموافقة عليها صراحةً. إذا تم ضبطها على auto،
سيتم إنشاء جميع المفاتيح في الحالة "تمت الموافقة" وستعمل على الفور. (يتم عادةً استخدام auto لمنح إذن الوصول إلى منتجات واجهة برمجة التطبيقات المجانية أو التجريبية التي توفّر حصة أو إمكانات محدودة). |
لا ينطبق | نعم |
attributes |
مجموعة من السمات التي يمكن استخدامها لتوسيع ملف تعريف المنتج التلقائي في واجهة برمجة التطبيقات باستخدام بيانات وصفية خاصة بالعميل.
استخدِم هذه السمة لتحديد مستوى الوصول إلى منتج واجهة برمجة التطبيقات على أنّه عام أو خاص أو داخلي. على سبيل المثال:
"attributes": [
{
"name": "access",
"value": "public"
},
{
"name": "foo","value": "foo" }, { "name": "bar", "value": "bar" }
]
|
لا ينطبق | لا |
scopes |
قائمة بنطاقات OAuth مفصولة بفواصل يتم التحقّق من صحتها في وقت التشغيل. (تتحقّق Apigee Edge من أنّ النطاقات في أي رمز دخول معروض تتطابق مع النطاق المحدّد في منتج واجهة برمجة التطبيقات). | لا ينطبق | لا |
proxies |
خوادم وكيل واجهة برمجة التطبيقات المسماة التي يرتبط بها منتج واجهة برمجة التطبيقات هذا من خلال تحديد الخوادم الوكيلة، يمكنك ربط الموارد في منتج واجهة برمجة التطبيقات بخوادم وكيلة محدّدة لواجهة برمجة التطبيقات، ما يمنع المطوّرين من الوصول إلى هذه الموارد من خلال خوادم وكيلة أخرى لواجهة برمجة التطبيقات. | لا ينطبق | لا، إذا لم يتم تحديدها، يجب تحديد apiResources بشكل صريح (راجِع المعلومات الخاصة بـ apiResources أعلاه)، ويجب ضبط المتغيّر flow.resource.name في سياسة AssignMessage. |
environments |
البيئات المسماة (على سبيل المثال "test" أو "prod") التي يرتبط بها منتج واجهة برمجة التطبيقات هذا من خلال تحديد بيئة واحدة أو أكثر، يمكنك ربط الموارد المدرَجة في منتج واجهة برمجة التطبيقات ببيئة معيّنة، ما يمنع المطوّر من الوصول إلى هذه الموارد من خلال خوادم وكيلة لواجهة برمجة التطبيقات في بيئة أخرى. يُستخدَم هذا الإعداد، على سبيل المثال، لمنع الوصول إلى الموارد المرتبطة بخوادم وكيل واجهة برمجة التطبيقات في "prod" من خلال خوادم وكيل واجهة برمجة التطبيقات التي تم نشرها في "test". | لا ينطبق | لا، إذا لم يتم تحديدها، يجب تحديد apiResources بشكل صريح، ويجب ضبط المتغيّر flow.resource.name في سياسة AssignMessage. |
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، تكون النطاقات اختيارية تمامًا. يمكنك استخدام النطاقات لتحقيق تفويض أكثر دقة. يرتبط كل مفتاح عميل يتم إصداره لتطبيق بنطاق رئيسي. النطاق الرئيسي هو مجموعة كل النطاقات في جميع منتجات واجهة برمجة التطبيقات التي تمت الموافقة على التطبيق لاستخدامها. بالنسبة إلى التطبيقات التي تمت الموافقة عليها لاستخدام منتجات متعددة من واجهات برمجة التطبيقات، يكون النطاق الرئيسي هو اتحاد جميع النطاقات المحدّدة في منتجات واجهات برمجة التطبيقات التي تمت الموافقة على مفتاح المستهلك الخاص بها.
عرض منتجات واجهة برمجة التطبيقات
لعرض منتجات واجهة برمجة التطبيقات التي تم إنشاؤها لمؤسسة باستخدام واجهة برمجة التطبيقات، راجِع الأقسام التالية:
- عرض منتجات واجهة برمجة التطبيقات (التي تحقّق الربح)
يتم تلقائيًا عرض منتجات واجهة برمجة التطبيقات التي تحقّق الربح فقط (أي منتجات واجهة برمجة التطبيقات التي تتضمّن خطة أسعار واحدة على الأقل منشورة). لعرض جميع منتجات واجهة برمجة التطبيقات، اضبط مَعلمة طلب البحث
monetizedعلىfalse. هذا الإجراء مكافئ لإرسال طلب استرداد بيانات باستخدام GET إلى واجهة برمجة التطبيقات غير المدفوعة List API products:https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts?expand=true - عرض منتجات واجهة برمجة التطبيقات (غير محقّقة الربح)
- عرض منتجات واجهة برمجة التطبيقات المؤهَّلة لأحد المطوّرين
- عرض منتجات واجهة برمجة التطبيقات المؤهّلة لشركة
في ما يلي مثال على كيفية عرض منتجات واجهة برمجة التطبيقات باستخدام واجهة برمجة التطبيقات:
curl -X GET "https://ext.apiexchange.org/v1/mint/organizations/{org_name}/products?monetized=true" \
-H "Accept:application/json" \
-u email:password
من المفترض أن يظهر الرد على النحو التالي (يتم عرض جزء من الرد فقط):
{
"product" : [ {
"customAtt1Name" : "user",
"customAtt2Name" : "response size",
"customAtt3Name" : "content-length",
"description" : "payment api product",
"displayName" : "payment",
"id" : "payment",
"name" : "payment",
"organization" : {
...
},
"pricePoints" : [ ],
"status" : "CREATED",
"transactionSuccessCriteria" : "status == 'SUCCESS'"
}, {
"customAtt1Name" : "user",
"customAtt2Name" : "response size",
"customAtt3Name" : "content-length",
"description" : "messaging api product",
"displayName" : "messaging",
"id" : "messaging",
"name" : "messaging",
"organization" : ...
},
"pricePoints" : [ ],
"status" : "CREATED",
"transactionSuccessCriteria" : "status == 'SUCCESS'"
} ],
"totalRecords" : 2
}تسجيل المطوّرين باستخدام واجهة برمجة التطبيقات
تنتمي جميع التطبيقات إما إلى مطوّرين أو شركات. لذلك، لإنشاء تطبيق، عليك أولاً تسجيل مطوِّر أو شركة.
يتم تسجيل المطوّرين في مؤسسة من خلال إنشاء ملف شخصي. يُرجى العِلم أنّ عنوان البريد الإلكتروني للمطوّر المضمَّن في الملف الشخصي يُستخدَم كمفتاح فريد للمطوّر في جميع أنحاء Apigee Edge.
لإتاحة تحقيق الربح، يجب تحديد سمات تحقيق الربح عند إنشاء المطوّرين أو تعديلهم. يمكنك أيضًا تحديد سمات أخرى عشوائية لاستخدامها في التحليلات المخصّصة وتنفيذ السياسات المخصّصة وما إلى ذلك، ولن يتم تفسير هذه السمات العشوائية بواسطة Apigee Edge.
على سبيل المثال، يسجّل الطلب التالي ملفًا شخصيًا لمطوّر عنوان بريده الإلكتروني هو
ntesla@theremin.com ويحدّد مجموعة فرعية من سمات تحقيق الربح
باستخدام واجهة برمجة التطبيقات Create developer:
$ curl -H "Content-type:application/json" -X POST -d \
'{"email" : "ntesla@theremin.com",
"firstName" : "Nikola",
"lastName" : "Tesla",
"userName" : "theremin",
"attributes" : [
{
"name" : "project_type",
"value" : "public"
},
{
"name": "MINT_BILLING_TYPE",
"value": "POSTPAID"
},
{
"name": "MINT_DEVELOPER_ADDRESS",
"value": "{\"address1\":\"Dev One Address\",\"city\":\"Pleasanton\",\"country\":\"US\",\"isPrimary\":true,\"state\":\"CA\",\"zip\":\"94588\"}"
},
{
"name": "MINT_DEVELOPER_TYPE",
"value": "TRUSTED"
},
{
"name": "MINT_HAS_SELF_BILLING,
"value": "FALSE"
},
{
"name" : "MINT_SUPPORTED_CURRENCY",
"value" : "usd"
}
]
}' \
https://api.enterprise.apigee.com/v1/o/{org_name}/developers \
-u email:password
نموذج إجابة
{ "email" : "ntesla@theremin.com", "firstName" : "Nikola", "lastName" : "Tesla", "userName" : "theremin", "organizationName" : "{org_name}", "status" : "active", "attributes" : [ { "name" : "project_type", "value" : "public" }, { "name": "MINT_BILLING_TYPE", "value": "POSTPAID" }, { "name": "MINT_DEVELOPER_ADDRESS", "value": "{\"address1\":\"Dev One Address\",\"city\":\"Pleasanton\",\"country\":\"US\",\"isPrimary\":true,\"state\":\"CA\",\"zip\":\"94588\"}" }, { "name": "MINT_DEVELOPER_TYPE", "value": "TRUSTED" }, { "name": "MINT_HAS_SELF_BILLING, "value": "FALSE" }, { "name" : "MINT_SUPPORTED_CURRENCY", "value" : "usd" } ], "createdAt" : 1343189787717, "createdBy" : "admin@apigee.com", "lastModifiedAt" : 1343189787717, "lastModifiedBy" : "admin@apigee.com" }
تسجيل تطبيقات المطوّرين باستخدام واجهة برمجة التطبيقات
يرتبط كل تطبيق مسجَّل على Apigee Edge بمطوّر ومنتج API. عند تسجيل تطبيق نيابةً عن مطوّر، تنشئ Apigee Edge "بيانات اعتماد" (مفتاح العميل مع المفتاح السرّي) تحدّد التطبيق. بعد ذلك، يجب أن يمرّر التطبيق بيانات الاعتماد هذه كجزء من كل طلب إلى منتج واجهة برمجة تطبيقات مرتبط بالتطبيق.
يستخدم الطلب التالي واجهة برمجة التطبيقات إنشاء تطبيق مطوِّر لتسجيل تطبيق للمطوِّر الذي أنشأته أعلاه: ntesla@theremin.com. عند تسجيل تطبيق، عليك تحديد اسم للتطبيق وcallbackUrl وقائمة بمنتج واحد أو أكثر من منتجات واجهة برمجة التطبيقات:
$ 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
يتم استخدام callbackUrl من خلال بعض أنواع منح الإذن باستخدام OAuth (مثل رمز التفويض) للتحقّق من صحة طلبات إعادة التوجيه من التطبيق. إذا كنت تستخدم OAuth، يجب ضبط هذه القيمة على القيمة نفسها التي تم استخدامها في redirect_uri لإجراء طلبات OAuth.
تحدّد السمة keyExpiresIn، بالملّي ثانية، مدة صلاحية مفتاح المستهلك الذي سيتم إنشاؤه لتطبيق المطوّر. تشير القيمة التلقائية، -1، إلى فترة صلاحية غير محدودة.
نموذج إجابة
{ "appId": "5760d130-528f-4388-8c6f-65a6b3042bd1", "attributes": [ { "name": "DisplayName", "value": "Test Key Expires" }, { "name": "Notes", "value": "Just testing this attribute" } ], "createdAt": 1421770824390, "createdBy": "wwitman@apigee.com", "credentials": [ { "apiProducts": [ { "apiproduct": "ProductNoResources", "status": "approved" } ], "attributes": [], "consumerKey": "jcAFDcfwImkJ19A5gTsZRzfBItlqohBt", "consumerSecret": "AX7lGGIRJs6s8J8y", "expiresAt": 1424400824401, "issuedAt": 1421770824401, "scopes": [], "status": "approved" } ], "developerId": "e4Oy8ddTo3p1BFhs", "lastModifiedAt": 1421770824390, "lastModifiedBy": "wwitman@apigee.com", "name": "TestKeyExpires", "scopes": [], "status": "approved" }
إدارة مفاتيح المستهلك للتطبيقات التي تستخدم واجهة برمجة التطبيقات
الحصول على مفتاح المستهلك (مفتاح واجهة برمجة التطبيقات) للتطبيق
يتم عرض بيانات اعتماد أحد التطبيقات (منتج واجهة برمجة التطبيقات ومفتاح المستهلك وكلمة المرور) كجزء من ملف تعريف التطبيق. يمكن لمشرف المؤسسة استرداد مفتاح المستهلك في أي وقت.
يعرض ملف التطبيق الشخصي قيمة مفتاح المستهلك وسرّه وحالة مفتاح المستهلك، بالإضافة إلى أي عمليات ربط بين مفتاح المنتج وواجهة برمجة التطبيقات. بصفتك مشرفًا، يمكنك استرداد ملف مفتاح المستهلك في أي وقت باستخدام واجهة برمجة التطبيقات Get Key Details for a Developer App:
$ 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"
}لمزيد من المعلومات، يمكنك الاطّلاع على الحصول على تفاصيل أساسية حول تطبيق أحد المطوّرين.
إضافة منتج واجهة برمجة تطبيقات إلى تطبيق ومفتاح
لتعديل تطبيق من أجل إضافة منتج جديد من منتجات واجهة برمجة التطبيقات، عليك في الواقع إضافة منتج واجهة برمجة التطبيقات إلى مفتاح التطبيق باستخدام Add API Product to Key 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"
}
الموافقة على مفاتيح المستهلك
يسمح لك ضبط نوع الموافقة على يدوي بالتحكّم في المطوّرين الذين يمكنهم الوصول إلى الموارد المحمية بواسطة منتجات واجهة برمجة التطبيقات. عندما تكون الموافقة على المفتاح في منتجات واجهة برمجة التطبيقات مضبوطة على manual، يجب الموافقة صراحةً على مفاتيح المستهلك. يمكن الموافقة على المفاتيح بشكل صريح باستخدام واجهة برمجة التطبيقات الموافقة على مفتاح محدّد أو إبطاله في تطبيق المطوّر:
$ 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 أو إبطاله لمفتاح تطبيق مطوّر:
$ 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 إلى آخر.
لإبطال ربط مفتاح مستهلك بمنتج واجهة برمجة تطبيقات، استخدِم واجهة برمجة التطبيقات Approve or Revoke Specific Key of Developer App ، وذلك باستخدام الإجراء revoke ضد مفتاح المستهلك الخاص بتطبيق المطوّر:
$ curl -X POST -H "Content-type:application/octet-stream" \
https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J/apiproducts/weather_free?"action=revoke" \
-u email:password
لا يعرض أمر cURL هذا أي رد. لمزيد من المعلومات، راجِع الموافقة على مفتاح معيّن لتطبيق المطوّر أو إبطاله.
فرض إعدادات منتج واجهة برمجة التطبيقات
لكي يتم فرض استخدام منتجات واجهة برمجة التطبيقات، يجب إرفاق أحد أنواع السياسات التالية بتدفّق خادم وكيل واجهة برمجة التطبيقات:
- VerifyAPIKey: تأخذ مرجعًا إلى مفتاح واجهة برمجة التطبيقات، وتتحقّق من أنّه يمثّل تطبيقًا صالحًا، ويتطابق مع منتج واجهة برمجة التطبيقات. لمزيد من المعلومات، يمكنك الاطّلاع على سياسة التحقّق من صحة مفتاح واجهة برمجة التطبيقات.
- OAuthV1، عملية VerifyAccessToken: تتحقّق من التوقيع، وتتحقّق من صحة رمز الدخول إلى OAuth 1.0a و"مفتاح المستهلك"، وتطابق التطبيق مع منتج واجهة برمجة التطبيقات. لمزيد من المعلومات، يُرجى الاطّلاع على سياسة OAuth v1.0a.
- عملية OAuthV2، VerifyAccessToken: تتحقّق من أنّ رمز الدخول المميز في OAuth 2.0 صالح ويتطابق مع التطبيق، وتتحقّق من أنّ التطبيق صالح، ثم تربط التطبيق بمنتج API. يمكنك الاطّلاع على صفحة OAuth الرئيسية لمعرفة المزيد.
بعد ضبط السياسات ومنتجات واجهة برمجة التطبيقات، تنفّذ Apigee Edge العملية التالية:
- تتلقّى Apigee Edge طلبًا وتوجّهه إلى خادم وكيل واجهة برمجة التطبيقات المناسب.
- يتم تنفيذ سياسة تتحقّق من مفتاح واجهة برمجة التطبيقات أو رمز الدخول المميز OAuth الذي يقدّمه العميل.
- يحلّ Edge مفتاح واجهة برمجة التطبيقات أو رمز الدخول إلى ملف تعريف التطبيق.
- يحلّ Edge قائمة منتجات واجهة برمجة التطبيقات المرتبطة بالتطبيق (إن وُجدت).
- يتم استخدام أول منتج من منتجات واجهة برمجة التطبيقات يتطابق مع المتطلبات لملء متغيّرات الحصة.
- إذا لم يتطابق أي منتج من منتجات واجهة برمجة التطبيقات مع مفتاح واجهة برمجة التطبيقات أو رمز الدخول، سيتم رفض الطلب.
- تفرض Edge التحكّم في الوصول المستند إلى معرّف الموارد المنتظم (URI) (البيئة وخادم وكيل واجهة برمجة التطبيقات ومسار معرّف الموارد المنتظم) استنادًا إلى إعدادات منتج واجهة برمجة التطبيقات، بالإضافة إلى إعدادات الحصة.