توفر هذه المكتبة فئات تنفذ عملاء REST الأساسيين استنادًا إلى امتداد cURL الخاص بـ PHP. يتم توفير فئتين من العملاء:
RestClient - فئة لتنفيذ مكالمات خدمة RESTful.
RestMultiClient - فئة تعمل على توسيع RestClient لتوفير إمكانيات curl_multi للسماح بإجراء مكالمات RESTful متعددة بالتوازي.
بالإضافة إلى ذلك، توفر هذه المكتبة فئات تعمل على تغليف استجابات الضفيرة داخل واجهة موجهة للكائنات:
CurlHttpResponse - فئة تقوم بتغليف استجابة HTTP المستلمة عبر cURL في غلاف الفئة.
CurlMultiHttpResponse - فئة تمثل مجموعة من كائنات CurlHttpRepsonse كما تم إرجاعها من استدعاءات cURL المتوازية المتعددة.
تدعم هذه الفئات:
إجراءات HTTP - GET، POST، PUT، DELETE، وHEAD
المصادقة الأساسية
SSL، مع القدرة على تبديل التحقق من صحة شهادة SSL للمساعدة في بيئات التطوير/الاختبار
يتطلب:
PHP 5.6+
PHP ملحق الضفيرة
PHPUnit 5.7+ (لاختبارات الوحدة فقط)
تم تطوير هذه المكتبة مقابل PHP 7.1 وتم اختبارها عبر Travis CI مقابل:
PHP 5.6.*
PHP 7.0.*
PHP 7.1.*
بناء PHP ليلا
وثائق المكتبة الكاملة
حالة بناء ترافيس CI
الكود تغطية كود المناخ والمعلومات الصحية
صفحة التعبئة والتغليف
مثال الاستخدام:
<?php use MikeBrantRestClientLib; /** * Single request using RestClient */ $restClient = new RestClient(); $restClient->setRemoteHost('foo.bar.com') ->setUriBase('/some_service/') ->setUseSsl(true) ->setUseSslTestMode(false) ->setBasicAuthCredentials('username', 'password') ->setHeaders(array('Accept' => 'application/json')); // make requests against service $response = $restClient->get('resource'); $response = $restClient->post('resource', $data); $response = $restClient->put('resource', $data); $response = $restClient->delete('resource'); $response = $restClient->head('resource'); /** * Multiple parallel requests using RestMultiClient */ $restMultiClient = new RestMultiClient(); $restMultiClient->setRemoteHost('foo.bar.com') ->setUriBase('/some_service/') ->setUseSsl(true) ->setUseSslTestMode(false) ->setBasicAuthCredentials('username', 'password') ->setHeaders(array('Accept' => 'application/json')); // make requests against service $responses = $restMultiClient->get(['resource1', 'resource2', ...]); $responses = $restMultiClient->post(['resource1', 'resource2', ...], [$data1, $data2, ...]); $responses = $restMultiClient->put(['resource1', 'resource2', ...], [$data1, $data2, ...]); $responses = $restMultiClient->delete(['resource1', 'resource2', ...]); $responses = $restMultiClient->head(['resource1', 'resource2', ...]);