تجعل مكتبة عميل APIGEE API لـ PHP من السهل تطوير عملاء PHP الذين يدعون APIGEE EDGE/ X Management API. تمكنك مكتبة عميل APIGEE API لـ PHP من التفاعل مع واجهة برمجة التطبيقات باستخدام الكائنات بدلاً من الترميز للتعامل مع طلب HTTP ومكالمات الاستجابة مباشرة.
على وجه التحديد ، توفر مكتبة عميل Apigee API لـ PHP الوصول إلى Apigee Edge و Apigee Management APIs في الفئات التالية:
لمزيد من المعلومات حول Apigee Edge و Apigee Management APIs ، راجع البدء في واجهات برمجة تطبيقات Apigee Edge Management والبدء في واجهات برمجة تطبيقات Apigee Management في وثائق Apigee.
توفر مكتبة عميل APIGEE API لـ PHP ، المصممة باستخدام مكتبة HTTPlug ، مكتبة مستقلة عن تنفيذ عميل HTTP. يمكنك اختيار العميل الذي يناسب متطلبات مشروعك.
إذا كنت بحاجة إلى دعم PHP <7.1 أو API تسييل ، يرجى تثبيت إصدار Edge-PHP-SDK الأقدم. نحن نخطط لإضافة دعم API إلى هذه المكتبة في المستقبل القريب.
الخدمات المستمرة الأساسية (CPS) غير متوفرة على المنشآت السحابية الخاصة. يدعم عميل PHP API ترقيم الصفحات في إدراج نقاط نهاية API (على سبيل المثال: قائمة المطورين). إذا لم يكن CPS متاحًا ، فإن عميل PHP API يحاكي ميزة ترقيم الصفحات ويؤدي إلى خطأ في مستوى E_USER_NOTICE لإعلام المطورين أن النتيجة المترتبة تم إنشاؤها بواسطة PHP وليس خادم API الإدارة. يمكن قمع هذا الإشعار بطرق متعددة. يمكنك قمعه عن طريق تغيير تكوين error_reporting PHP لقمع جميع أخطاء مستوى E_Notice مع تغيير قيمته إلى E_ALL | ~E_NOTICE على سبيل المثال. يمكنك أيضًا قمع الإشعار الذي تم إنشاؤه فقط بواسطة عميل API PHP عن طريق تعيين APIGEE_EDGE_PHP_CLIENT_SUPPRESS_CPS_SIMULATION_NOTICE القيمة المتغيرة إلى قيمة falsy ، على سبيل المثال: APIGEE_EDGE_PHP_CLIENT_SUPPRESS_CPS_SIMULATION_NOTICE=1 .
تمت إضافة دعم APIGEE Hybrid API إلى هذه المكتبة ويعتبر الآن جاهزًا للإنتاج. إذا واجهت أي مشاكل ، فأضف مشكلة إلى قائمة انتظار قضية Github الخاصة بنا.
يجب عليك تثبيت عميل أو محول HTTP قبل تثبيت مكتبة عميل APIGEE API لـ PHP. للحصول على قائمة كاملة من العملاء والمحولات المتاحة ، راجع العملاء والمحولات في وثائق PHP-HTTP.
لتثبيت مكتبة العميل باستخدام Guzzle 6 ، أدخل الأوامر التالية:
$ composer require php-http/guzzle6-adapter:^1.1.1
$ composer require apigee/apigee-client-php
<?php
use Apigee Edge Api Management Controller DeveloperController ;
use Apigee Edge Api Management Entity Developer ;
use Apigee Edge Exception ApiException ;
use Apigee Edge Exception ClientErrorException ;
use Apigee Edge Exception ServerErrorException ;
use Apigee Edge Client ;
use Http Message Authentication BasicAuth ;
include_once ' vendor/autoload.php ' ;
$ username = ' [email protected] ' ;
$ password = ' my-secure-password ' ;
$ organization = ' my-organization ' ;
$ auth = new BasicAuth ( $ username , $ password );
// Initialize a client and use basic authentication for all API calls.
$ client = new Client ( $ auth );
// Initialize a controller for making API calls, for example a developer controller to working with developer entities.
$ ec = new DeveloperController ( $ organization , $ client );
try {
/** @var ApigeeEdgeApiManagementEntityDeveloper $entity */
$ entity = $ ec -> load ( ' [email protected] ' );
$ entity -> setEmail ( ' [email protected] ' );
$ ec -> update ( $ entity );
// Some setters on entities are intentionally marked as @internal because the underlying entity properties can not
// be changed on the entity level. Those must be modified by using dedicated API calls.
// So instead of this:
$ entity -> setStatus (Developer:: STATUS_INACTIVE );
// You should use this:
$ ec -> setStatus ( $ entity -> id (), Developer:: STATUS_INACTIVE );
} catch ( ClientErrorException $ e ) {
// HTTP code >= 400 and < 500. Ex.: 401 Unauthorised.
if ( $ e -> getEdgeErrorCode ()) {
print $ e -> getEdgeErrorCode ();
} else {
print $ e ;
}
} catch ( ServerErrorException $ e ) {
// HTTP code >= 500 and < 600. Ex.: 500 Server error.
} catch ( ApiException $ e ) {
// Anything else, because this is the parent class of all the above.
}قم بإعداد مجموعة الاختبار باستخدام الملحن إذا لم يتم ذلك بالفعل:
$ composer install --dev
قم بتشغيله باستخدام phpunit:
$ composer test
لا يتطلب اختبار التغييرات الجديدة اتصال Apigee Edge. بشكل افتراضي ، تستخدم اختبارات الوحدة محتوى مجلد البيانات غير المتصلة بالإنترنت لجعل الاختبار أسهل وأسهل. إذا كنت ترغب في تشغيل اختبارات الوحدات باستخدام مثيل حقيقي Apigee Edge ، فعليك تحديد متغيرات البيئة التالية (بدون قوسين):
APIGEE_EDGE_PHP_CLIENT_API_CLIENT= A pigee E dge T ests T est C lient
APIGEE_EDGE_PHP_CLIENT_HTTP_CLIENT= H ttp A dapter G uzzle6 C lient
APIGEE_EDGE_PHP_CLIENT_BASIC_AUTH_USER=[[email protected]]
APIGEE_EDGE_PHP_CLIENT_BASIC_AUTH_PASSWORD=[PASSWORD]
APIGEE_EDGE_PHP_CLIENT_ORGANIZATION=[ORGANIZATION]
APIGEE_EDGE_PHP_CLIENT_ENVIRONMENT=[ENVIRONMENT]
# If test organization does not support CPS.
APIGEE_EDGE_PHP_CLIENT_SUPPRESS_CPS_SIMULATION_NOTICE=1 هناك طرق متعددة لتعيين متغيرات البيئة هذه ، ولكن من المحتمل أن يكون الأسهل هو إنشاء نسخة من ملف phpunit.xml.dist مثل phpunit.xml وعناصر env داخل العنصر.
من الممكن أيضًا إنشاء مجموعة البيانات الخاصة بك واستخدامها. إذا كنت ترغب في استخدام مجموعة بيانات الاختبار الخاصة بك ، فأنت بحاجة فقط إلى تحديد APIGEE_EDGE_PHP_CLIENT_OFFLINE_TEST_DATA_FOLDER .
PS.: لا يمكن تنفيذ بعض اختبارات الوحدة عندما تكون مجموعة بيانات الاختبار في وضع عدم الاتصال قيد الاستخدام ، يتم تمييزها تلقائيًا كما تخطي.
تتبع هذه المكتبة استراتيجية الإصدار الدلالي. وهذا يعني أن الإصدارات الرئيسية فقط (مثل 3.0 ، 4.0 وما إلى ذلك) مسموح بها لكسر التوافق الخلفي ونبذل قصارى جهدنا للحفاظ على ذلك بهذه الطريقة. يجب أن يكون عميل PHP API متوافقًا مع أحدث إصدارات واجهات برمجة تطبيقات Apigee Edge المدعومة. كما ترون ، كل فصل تقريبًا ينفذ واجهة واحدة على الأقل في هذه المكتبة ، لذلك ، نود أن نقترح الاعتماد على تعريفات الواجهة بدلاً من الفصول الخرسانية إذا قمت ببناء شيء ما في الجزء العلوي من هذه المكتبة. أيضا ، تفضل التغليف على الميراث إذا قمت بتوسيع فصولنا. سنصدر إصدارًا رئيسيًا جديدًا من هذه المكتبة إذا كان لا يمكن تنفيذ تغيير في واجهة برمجة تطبيقات Apigee Edge المدعومة في عميل PHP API دون تغيير واجهة.
هذا المشروع ، الذي يربط Drupal 8 مع Apigee Edge ، مدعوم من Google. استخدم قائمة انتظار إصدار مشروعنا للإبلاغ عن أي أسئلة أو مشكلات أو ملاحظات.
نود قبول المساهمات في هذا المشروع ، يرجى الاطلاع على إرشادات المساهمة لهذا المشروع لمزيد من التفاصيل.