تنفيذ عميل PHP لاستفسار مركبة DVLA API V1. توفر هذه الحزمة:
يمكنك تثبيت المكتبة عبر الملحن.
composer require lendable/dvla-vehicle-enquiry-api-clientتنفذ فئة العميل واجهة برمجة تطبيقات REST الخاصة بـ DVLA ويمكنها إعادة نطاق المركبات التي يمكن استخدامها لطلب تفاصيل السيارة.
من أجل تثبيت فئة العميل ، نحتاج إلى ضخ الديكورات التي تضيف مصادقة مفتاح API ، وطبقات توافق PSR-18. أيضًا ، نحتاج إلى تحديد URI لقاعدة API للتبديل بسهولة بين UAT والخدمة المباشرة.
تحتوي مواصفات واجهة برمجة التطبيقات على URL وعنوان URL الحية. يجب ألا ينتهي URI المعطى بقطع ( / ) ويجب أن يحتوي على مسار /v1 أيضًا.
على سبيل المثال: https://uat.driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1
يقبل العميل URI في أي تطبيق PSR-7 uriinterface.
يضيف apikeyauthhttpclientDecorator رؤوس مصادقة الرمز المميز API المطلوب إلى الطلبات. يحافظ كائن القيمة apikey على سر الرمز المميز ، وتجنب التعرض العرضي.
باستخدام PSR18ClientDecorator ، يمكنك استخدام أي عميل HTTP يدعم معيار PSR-18 لأداء طلب HTTP المسبق.
إذا كنت تفضل استخدام عميل HTTP لا يدعم معيار PSR-18 ، فيمكنك بدلاً من ذلك إنشاء ديكور بسيط يدعو عميل HTTP باستخدام بيانات طلب PSR-18 RequestInterface وتحويل استجابة عميل HTTP إلى PSR- 18 استجابة تنسيق الاستجابة.
على سبيل المثال ، في اختبار التكامل الخاص بنا ، نستخدم GuzzleClient مع ديكور يستخدم هذا التحويل PSR-18.
<?php
declare (strict_types= 1 );
use Lendable Dvla VehicleEnquiry Auth ApiKeyAuthHttpClientDecorator ;
use Lendable Dvla VehicleEnquiry Auth ValueObject ApiKey ;
use Lendable Dvla VehicleEnquiry Client ;
use Lendable Dvla VehicleEnquiry Psr18ClientDecorator ;
use Lendable Dvla VehicleEnquiry Scope VehiclesScope Request EnquiryRequest ;
use Lendable Dvla VehicleEnquiry Scope VehiclesScope ValueObject RegistrationNumber ;
use Nyholm Psr7 Uri ;
$ client = new Client (
new ApiKeyAuthHttpClientDecorator (
new Psr18ClientDecorator (
new YourPsr18HttpClient ()
),
ApiKey :: fromString ( ' YOUR-AUTHENTICATION-TOKEN ' )
),
new Uri ( ' https://uat.driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1 ' )
);
$ vehicleDetails = $ client -> vehicles ()-> enquireDetails (
EnquiryRequest :: with ( RegistrationNumber :: fromString ( ' AA19PPP ' ))
); هذا يجعل طلب API مع رقم تسجيل AA19PPP وسيحتوي متغير $vehicleDetails على كائن EnquiryResponse الذي يحتوي على جميع بيانات استجابة API التي تم إرجاعها في كائنات القيمة.
يستخدم هذا المثال عنوان URL API UAT ورقم تسجيل الاختبار. تتوفر أرقام تسجيل الاختبار للاستجابات الوهمية لحالات الاختبار المختلفة في وثائق API لخدمة الاستفسار عن مركبة DVLA.