أنت الآن بصدد الاطّلاع على مستندات 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) أو مسارات الموارد، ويتم "تجميعها" في منتج واجهة برمجة التطبيقات. يتم تلقائيًا ربط مسارات الموارد بالمتغيّر يمكنك اختيار مسار معيّن، أو يمكنك اختيار جميع المسارات الفرعية باستخدام حرف بدل.
يمكن استخدام أحرف البدل (/** و /*). يشير حرف البدل المكوّن من نجمتَين إلى أنّه تم تضمين جميع المعرّفات الفرعية للموارد الموحّدة (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") التي يرتبط بها منتج واجهة برمجة التطبيقات هذا. من خلال تحديد بيئة واحدة أو أكثر، يمكنك ربط الموارد المدرَجة في منتج واجهة برمجة التطبيقات ببيئة معيّنة، ما يمنع المطوّر من الوصول إلى هذه الموارد من خلال خوادم وكيلة لواجهة برمجة التطبيقات في بيئة أخرى. يُستخدَم هذا الإعداد، على سبيل المثال، لمنع الوصول إلى الموارد المرتبطة بخوادم وكيل API في "prod" من خلال خوادم وكيل API التي تم نشرها في "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 غير المدفوعة: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 ويحدّد مجموعة فرعية من سمات تحقيق الربح باستخدام واجهة برمجة التطبيقات إنشاء مطوّر:
$ 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 "بيانات اعتماد" (مفتاح العميل مع المفتاح السرّي) تحدّد التطبيق. بعد ذلك، يجب أن يمرّر التطبيق بيانات الاعتماد هذه كجزء من كل طلب إلى منتج API مرتبط بالتطبيق.
يستخدم الطلب التالي واجهة برمجة التطبيقات Create Developer App لتسجيل تطبيق للمطوّر الذي أنشأته أعلاه: 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 API:
$ curl -X GET -H "Accept: application/json" \
https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J \
-u email:password
نموذج إجابة
{
"apiProducts" : [ {
"apiproduct" : "weather_free",
"status" : "approved"
} ],
"attributes" : [ ],
"consumerKey" : "HQg0nCZ54adKobpqEJaE8FefGkdKFc2J",
"consumerSecret" : "1eluIIdWG3JGDjE0",
"status" : "approved"
}لمزيد من المعلومات، راجِع الحصول على تفاصيل أساسية حول تطبيق مطوِّر.
إضافة منتج واجهة برمجة تطبيقات إلى تطبيق ومفتاح
لتعديل تطبيق من أجل إضافة منتج جديد من منتجات واجهة برمجة التطبيقات، عليك في الواقع إضافة المنتج إلى مفتاح التطبيق باستخدام 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 باستخدام واجهة برمجة التطبيقات Approve or Revoke API Product for a Key for a Developer App:
$ curl -X POST -H "Content-type:application/octet-stream" \
https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J/apiproducts/weather_free?"action=approve" \
-u email:password
لا يعرض أمر cURL هذا أي رد. لمزيد من المعلومات، راجِع الموافقة على منتج واجهة برمجة التطبيقات أو إبطاله لمفتاح تطبيق مطوِّر.
إبطال منتجات واجهة برمجة التطبيقات لمفاتيح المستهلكين
هناك العديد من الأسباب التي قد تدفعك إلى إبطال ربط مفتاح مستهلك بمنتج من منتجات واجهة برمجة التطبيقات. قد تحتاج إلى إزالة منتج API من مفتاح مستهلك بسبب عدم الدفع من قِبل المطوّر أو انتهاء الفترة التجريبية أو عند الترقية من منتج API إلى آخر.
لإلغاء ربط مفتاح مستهلك بمنتج API، استخدِم واجهة برمجة التطبيقات 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 1.0a نهائيًا، يُرجى الاطّلاع على الميزات التي تم إيقافها نهائيًا.
- OAuthV2، عملية VerifyAccessToken: تتحقّق من أنّ رمز الدخول المميز OAuth 2.0 صالح، وتطابق الرمز المميز مع التطبيق، وتتحقّق من أنّ التطبيق صالح، ثم تطابق التطبيق مع أحد منتجات واجهة برمجة التطبيقات. يمكنك الاطّلاع على المزيد في صفحة OAuth الرئيسية.
بعد ضبط السياسات ومنتجات واجهة برمجة التطبيقات، تنفّذ Apigee Edge العملية التالية:
- تتلقّى Apigee Edge طلبًا وتوجّهه إلى خادم وكيل واجهة برمجة التطبيقات المناسب.
- يتم تنفيذ سياسة تتحقّق من مفتاح واجهة برمجة التطبيقات أو رمز الدخول المميز OAuth الذي يقدّمه العميل.
- يحلّ Edge مفتاح واجهة برمجة التطبيقات أو رمز الدخول إلى ملف تعريف التطبيق.
- تحلّ Edge قائمة منتجات واجهة برمجة التطبيقات المرتبطة بالتطبيق (إن وُجدت).
- يتم استخدام أول منتج API مطابق لملء متغيّرات الحصة.
- إذا لم يتطابق أي منتج من منتجات واجهة برمجة التطبيقات مع مفتاح واجهة برمجة التطبيقات أو رمز الدخول، سيتم رفض الطلب.
- تفرض Edge التحكّم في الوصول المستند إلى معرّف الموارد المنتظم (URI) (البيئة وخادم وكيل واجهة برمجة التطبيقات ومسار معرّف الموارد المنتظم) استنادًا إلى إعدادات منتج واجهة برمجة التطبيقات، بالإضافة إلى إعدادات الحصة.