Perpustakaan Klien API Apigee untuk PHP memudahkan untuk mengembangkan klien PHP yang memanggil API Manajemen Edge/ X Apigee. Perpustakaan Klien API APIGEE untuk PHP memungkinkan Anda untuk berinteraksi dengan API menggunakan objek alih -alih pengkodean untuk menangani panggilan permintaan dan respons HTTP secara langsung.
Secara khusus, Perpustakaan Klien API Apigee untuk PHP menyediakan akses ke API Manajemen EDGE dan APIGEE API dalam kategori berikut:
Untuk informasi lebih lanjut tentang ApiGee Edge dan Apigee Management API, lihat memulai dengan API Manajemen EDGE APIGEE dan memulai dengan API Manajemen Apigee dalam dokumentasi Apigee.
Perpustakaan Klien API APIGEE untuk PHP, dibangun menggunakan pustaka HTTPLUG, menyediakan perpustakaan implementasi http-implementasi-independen. Anda memilih klien yang paling sesuai dengan persyaratan proyek Anda.
Jika Anda memerlukan PHP <7.1 atau dukungan API monetisasi, silakan instal versi Edge-PHP-SDK yang lebih tua. Kami berencana untuk menambahkan dukungan API monetisasi ke perpustakaan ini dalam waktu dekat.
Inti Persisten Layanan (CPS) tidak tersedia pada instalasi cloud pribadi. Klien API PHP mendukung pagination pada daftar titik akhir API (Kel.: Pengembang daftar). Jika CPS tidak tersedia, klien API PHP mensimulasikan fitur pagination dan memicu kesalahan level E_USER_NOTICE untuk memberi tahu pengembang bahwa hasil paginated dihasilkan oleh PHP dan bukan server API manajemen. Pemberitahuan ini dapat ditekan dalam berbagai cara. Anda dapat menekannya dengan mengubah konfigurasi error_reporting PHP untuk menekan semua kesalahan level E_NOTICE dengan mengubah nilainya menjadi E_ALL | ~E_NOTICE misalnya. Anda juga dapat menekan hanya pemberitahuan yang dihasilkan oleh klien PHP API dengan mengatur nilai variabel lingkungan APIGEE_EDGE_PHP_CLIENT_SUPPRESS_CPS_SIMULATION_NOTICE ke nilai palsu, misalnya: APIGEE_EDGE_PHP_CLIENT_SUPPRESS_CPS_SIMULATION_NOTICE=1 .
Dukungan untuk API hibrida Apigee telah ditambahkan ke perpustakaan ini dan sekarang dianggap siap produksi. Jika Anda mengalami masalah apa pun, tambahkan masalah ke antrian masalah GitHub kami.
Anda harus menginstal klien atau adaptor HTTP sebelum Anda menginstal Perpustakaan Klien API Apigee untuk PHP. Untuk daftar lengkap klien dan adaptor yang tersedia, lihat klien & adaptor dalam dokumentasi PHP-HTTP.
Untuk menginstal Perpustakaan Klien menggunakan Guzzle 6, masukkan perintah berikut:
$ 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.
}Siapkan suite tes menggunakan komposer jika belum dilakukan:
$ composer install --dev
Jalankan menggunakan phpunit:
$ composer test
Pengujian perubahan baru tidak memerlukan koneksi tepi apigee. Secara default, tes unit menggunakan konten folder Offline-Test-Data untuk membuat pengujian lebih cepat dan lebih mudah. Jika Anda ingin menjalankan tes unit dengan instance edge apigee nyata, Anda harus menentukan variabel lingkungan berikut (tanpa tanda kurung):
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 Ada beberapa cara untuk mengatur variabel lingkungan ini, tetapi mungkin yang termudah adalah membuat salinan dari file phpunit.xml.dist sebagai phpunit.xml dan uncomment elemen env di dalam elemen.
Dimungkinkan juga untuk membuat dan menggunakan set data Anda sendiri. Jika Anda ingin menggunakan set data uji offline Anda sendiri maka Anda hanya perlu mendefinisikan variabel lingkungan APIGEE_EDGE_PHP_CLIENT_OFFLINE_TEST_DATA_FOLDER mengatur nilainya ke folder induk dari set data uji Anda sendiri.
PS.: Beberapa tes unit tidak dapat dieksekusi ketika set data uji offline sedang digunakan, itu secara otomatis ditandai sebagai dilewati.
Perpustakaan ini mengikuti strategi versi semantik. Ini berarti hanya rilis besar (seperti 3.0, 4.0 dll.) Diizinkan untuk memecahkan kompatibilitas ke belakang dan kami melakukan yang terbaik untuk tetap seperti ini. Klien API PHP harus kompatibel dengan versi terbaru dari API EDGE APIGEE yang didukung. Seperti yang Anda lihat, hampir setiap kelas mengimplementasikan setidaknya satu antarmuka di perpustakaan ini, oleh karena itu, kami ingin menyarankan untuk mengandalkan definisi antarmuka alih -alih kelas konkret jika Anda membangun sesuatu di bagian atas perpustakaan ini. Juga, lebih suka enkapsulasi daripada warisan jika Anda memperluas kelas kami. Kami akan merilis versi utama baru dari perpustakaan ini jika perubahan dalam API API APIGEE EDGE yang didukung tidak dapat diimplementasikan pada klien PHP API tanpa mengubah antarmuka.
Proyek ini, yang menghubungkan Drupal 8 dengan Apigee Edge, didukung oleh Google. Gunakan antrian masalah proyek kami untuk melaporkan pertanyaan, masalah, atau umpan balik.
Kami ingin menerima kontribusi untuk proyek ini, silakan lihat pedoman kontribusi untuk proyek ini untuk lebih jelasnya.