PHP -Client -Implementierung für die DVLA -Fahrzeuganfrage API V1. Dieses Paket enthält:
Sie können die Bibliothek über Komponist installieren.
composer require lendable/dvla-vehicle-enquiry-api-client
Die Client -Klasse implementiert die REST -API der DVLA und kann den Fahrzeugbereich zurückgeben, mit dem die Fahrzeugdaten anfordern können.
Für die Instanziierung der Client-Klasse müssen wir die Dekoratoren injizieren, was die API-Schlüsselauthentifizierung und die PSR-18-Kompatibilitätsschichten hinzufügt. Außerdem müssen wir den Basis -URI der API definieren, um leicht zwischen UAT und Live -Service zu wechseln.
Die Spezifikation der API enthält die UAT- und lebende URL. Die angegebene URI sollte nicht mit Schrägstrich ( /
) enden und auch den /v1
-Pfad enthalten.
Zum Beispiel: https://uat.driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1
vehicle-licensing.api.gov.uk/vehicle-enquiry/v1
Der Client akzeptiert die URI in einer PSR-7-Uriinterface-Implementierung.
Der ApikeyAuthttpclientDecorator fügt den Anfragen die erforderlichen API -Token -Authentifizierungs -Header hinzu. Das Apikey -Wert -Objekt hält das Token geheim und vermeidet eine versehentliche Belichtung.
Mit dem PSR18ClientDeCorator können Sie jeden HTTP-Client verwenden, der den PSR-18-Standard unterstützt, um die vorgefertigte HTTP-Anforderung durchzuführen.
Wenn Sie es vorziehen, einen HTTP-Client zu verwenden, der den PSR-18-Standard nicht unterstützt, können Sie alternativ einen einfachen Dekorateur erstellen, der den HTTP-Client mithilfe der PSR-18-Anforderungsformatdaten aufruft und die Antwort des HTTP-Clients in eine PSR- konvertiert 18 Reaktionsinterface -Formatantwort.
In unserem Integrationstest verwenden wir beispielsweise Guzzleclient mit einem Dekorateur, der diese PSR-18-Konvertierung unter Verwendung eines Dekors.
<?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 ' ))
);
Dies stellt eine API -Anfrage mit der AA19PPP
-Registrierungsnummer durch, und die Variable $vehicleDetails
enthält ein EnquiryResponse -Objekt, das alle zurückgegebenen API -Antwortdaten in Wertobjekten enthält.
In diesem Beispiel wird die UAT -API -URL und eine Testregistrierungsnummer verwendet. Testregistrierungsnummern für Scheinantworten der verschiedenen Testfälle finden Sie in der DVLA -Dokumentation von DVLA -Fahrzeuganfragen.