ไลบรารีไคลเอนต์ APIGee API สำหรับ PHP ทำให้ง่ายต่อการพัฒนาไคลเอนต์ PHP ที่เรียก APIGEE EDGE/ X Management API ไลบรารีไคลเอนต์ APIGEE API สำหรับ PHP ช่วยให้คุณสามารถโต้ตอบกับ API โดยใช้วัตถุแทนการเข้ารหัสเพื่อจัดการคำขอ HTTP และการโทรตอบสนองโดยตรง
โดยเฉพาะไลบรารีไคลเอนต์ APIGEE API สำหรับ PHP ให้การเข้าถึง APIS APIS APIGEE EDGE และ APIGEE ในหมวดหมู่ต่อไปนี้:
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ APIGEE EDGE และ APIGEE APIS ให้ดูที่การเริ่มต้นใช้งาน APIS การจัดการ APIGEE EDGE และเริ่มต้นด้วย APIS การจัดการ APIGEE ในเอกสาร APIGEE
ไลบรารีไคลเอ็นต์ APIGEE API สำหรับ PHP ที่สร้างขึ้นโดยใช้ไลบรารี HTTPLUG ให้บริการไลบรารีที่เป็นอิสระจากไคลเอนต์ HTTP คุณเลือกลูกค้าที่เหมาะกับข้อกำหนดโครงการของคุณมากที่สุด
หากคุณต้องการ PHP <7.1 หรือการสนับสนุนการสร้างรายได้ API โปรดติดตั้งเวอร์ชัน edge-php-SDK รุ่นเก่า เรากำลังวางแผนที่จะเพิ่มการสนับสนุน API การสร้างรายได้ให้กับห้องสมุดนี้ในอนาคตอันใกล้
Core Sterving Services (CPS) ไม่สามารถใช้งานได้ในการติดตั้งคลาวด์ส่วนตัว ไคลเอนต์ PHP API รองรับการแบ่งแยกในรายการจุดสิ้นสุด API (เช่นผู้พัฒนารายการ) หาก CPS ไม่พร้อมใช้งานไคลเอ็นต์ PHP API จะจำลองคุณสมบัติการแบ่งแยกและจะทำให้เกิดข้อผิดพลาดระดับ E_USER_NOTEICE เพื่อให้นักพัฒนาทราบว่าผลลัพธ์ paginated ถูกสร้างขึ้นโดย PHP และไม่ใช่เซิร์ฟเวอร์การจัดการ API ประกาศนี้สามารถระงับได้หลายวิธี คุณสามารถระงับได้โดยการเปลี่ยนการกำหนดค่า error_reporting ของ PHP เพื่อระงับข้อผิดพลาดระดับ e_notice ทั้งหมด ด้วยการเปลี่ยนค่าเป็น E_ALL | ~E_NOTICE ตัวอย่างเช่น นอกจากนี้คุณยังสามารถระงับเฉพาะการแจ้งเตือนที่สร้างโดยไคลเอนต์ PHP API โดยการตั้งค่า APIGEE_EDGE_PHP_CLIENT_SUPPRESS_CPS_SIMULATION_NOTICE ค่าตัวแปรค่าตัวแปรเป็นค่าเท็จตัวอย่างเช่น: 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 ตัวแปรสภาพแวดล้อมตั้งค่าเป็นโฟลเดอร์พาเรนต์ของชุดข้อมูลทดสอบของคุณเอง
ป.ล. : การทดสอบหน่วยบางอย่างไม่สามารถดำเนินการได้เมื่อมีการใช้ชุดข้อมูลการทดสอบออฟไลน์ซึ่งจะถูกทำเครื่องหมายโดยอัตโนมัติว่าข้าม
ห้องสมุดนี้เป็นไปตามกลยุทธ์การกำหนดเวอร์ชันความหมาย มันหมายถึงเฉพาะการเผยแพร่ที่สำคัญ (เช่น 3.0, 4.0 ฯลฯ ) ได้รับอนุญาตให้ทำลายความเข้ากันได้ย้อนหลังและเราพยายามอย่างเต็มที่เพื่อให้มันเป็นแบบนี้ ไคลเอนต์ PHP API จะต้องเข้ากันได้กับ APIS Edge APIs APIGEE ที่รองรับรุ่นล่าสุด อย่างที่คุณเห็นเกือบทุกคลาสใช้อย่างน้อยหนึ่งอินเตอร์เฟสในไลบรารีนี้ดังนั้นเราขอแนะนำให้พึ่งพาคำจำกัดความของอินเทอร์เฟซแทนคลาสคอนกรีตหากคุณสร้างบางสิ่งบางอย่างที่ด้านบนของไลบรารีนี้ นอกจากนี้ยังต้องการการห่อหุ้มมากกว่าการสืบทอดถ้าคุณขยายชั้นเรียนของเรา เราจะปล่อยเวอร์ชันหลักใหม่จากไลบรารีนี้หากการเปลี่ยนแปลงใน APIGee Edge API ที่รองรับไม่สามารถนำไปใช้ในไคลเอนต์ PHP API โดยไม่ต้องเปลี่ยนอินเทอร์เฟซ
โครงการนี้ซึ่งเชื่อมต่อ Drupal 8 กับ Apigee Edge ได้รับการสนับสนุนโดย Google ใช้คิวปัญหาของโครงการของเราเพื่อรายงานคำถามปัญหาหรือข้อเสนอแนะใด ๆ
เรายินดีที่จะยอมรับการมีส่วนร่วมในโครงการนี้โปรดดูแนวทางการบริจาคสำหรับโครงการนี้สำหรับรายละเอียดเพิ่มเติม