การใช้งานไคลเอนต์ PHP สำหรับการสอบถามยานพาหนะ DVLA API V1 แพ็คเกจนี้ให้:
คุณสามารถติดตั้งไลบรารีผ่านนักแต่งเพลง
composer require lendable/dvla-vehicle-enquiry-api-client
คลาสไคลเอนต์ใช้ API REST ของ DVLA และสามารถส่งคืนขอบเขตยานพาหนะซึ่งสามารถใช้เพื่อขอรายละเอียดยานพาหนะ
สำหรับการสร้างอินสแตนซ์ของคลาสไคลเอนต์เราจำเป็นต้องฉีดเครื่องตกแต่งซึ่งเพิ่มการตรวจสอบคีย์ API และเลเยอร์ความเข้ากันได้ของ PSR-18 นอกจากนี้เราจำเป็นต้องกำหนด URI พื้นฐานของ API เพื่อสลับระหว่าง UAT และบริการสดได้อย่างง่ายดาย
ข้อกำหนดของ API ประกอบด้วย UAT และ URL สด URI ที่กำหนดไม่ควรจบลงด้วย Slash ( /
) และควรมีเส้นทาง /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 การตอบสนองรูปแบบ ResponseInterface
ตัวอย่างเช่นในการทดสอบการรวมของเราเราใช้ 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 ที่ส่งคืนทั้งหมดในวัตถุค่า
ตัวอย่างนี้ใช้ UAT API URL และหมายเลขการลงทะเบียนทดสอบ หมายเลขการลงทะเบียนทดสอบสำหรับการตอบสนองจำลองของกรณีทดสอบที่แตกต่างกันมีอยู่ในเอกสารการสอบถามยานพาหนะ DVLA Service API