Implémentation du client PHP pour l'API de recherche DVLA Vehicle Inquy V1. Ce package fournit:
Vous pouvez installer la bibliothèque via le compositeur.
composer require lendable/dvla-vehicle-enquiry-api-client
La classe du client implémente l'API REST du DVLA et peut retourner la portée des véhicules qui peut être utilisée pour demander les détails du véhicule.
Pour l'instanciation de la classe client, nous devons injecter les décorateurs qui ajoutent l'authentification des clés de l'API et les couches de compatibilité PSR-18. De plus, nous devons définir l'URI de base de l'API pour basculer facilement entre l'UAT et le service en direct.
La spécification de l'API contient l'URL UAT et Live. L'URI donné ne doit pas se terminer avec une barre oblique ( /
) et doit également contenir le chemin /v1
.
Par exemple: https://uat.driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1
Le client accepte l'URI dans toute implémentation PSR-7 URIInterface.
L'ApikeyAuthHttpClientDecorator ajoute les en-têtes d'authentification de jeton API requis aux demandes. L'objet Apikey Value maintient le jeton secret, évitant une exposition accidentelle.
Avec le PSR18ClientDecorator, vous pouvez utiliser n'importe quel client HTTP qui prend en charge la norme PSR-18 pour effectuer la demande HTTP pré-construite.
Si vous préférez utiliser un client HTTP qui ne prend pas en charge la norme PSR-18, vous pouvez également créer un décorateur simple qui appelle le client HTTP à l'aide des données de demande de format PSR-18 RequestInterface et convertir la réponse du client HTTP à un PSR- 18 Response Interface Format Réponse.
Par exemple, dans notre test d'intégration, nous utilisons GuzzleClient avec un décorateur qui en utilisant cette conversion 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 ' ))
);
Cela fait une demande d'API avec le numéro d'enregistrement AA19PPP
et la variable $vehicleDetails
contiendra un objet EnquiryResponse qui contient toutes les données de réponse API renvoyées dans des objets de valeur.
Cet exemple utilise l'URL de l'API UAT et un numéro d'enregistrement de test. Les numéros d'enregistrement des tests pour les réponses simulées des différents cas de test sont disponibles dans la documentation de l'API du service de demande de véhicule DVLA.