Implementación del cliente PHP para la investigación del vehículo DVLA API V1. Este paquete proporciona:
Puede instalar la biblioteca a través del compositor.
composer require lendable/dvla-vehicle-enquiry-api-client
La clase de cliente implementa la API REST del DVLA y puede devolver el alcance del vehículo que puede usarse para solicitar los detalles del vehículo.
Para la instancia de la clase de cliente, debemos inyectar los decoradores que agrega la autenticación de la clave API y las capas de compatibilidad PSR-18. Además, necesitamos definir la URI base de la API para cambiar fácilmente entre UAT y el servicio en vivo.
La especificación de la API contiene la UAT y la URL viva. El URI dado no debe terminar con Slash ( /
) y también debe contener la ruta /v1
.
Por ejemplo: https://uat.driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1
licensing.api.gov.uk/vehicle-enquiry/v1
El cliente acepta el URI en cualquier implementación de URIInterface PSR-7.
El ApikeyauthhttpClientDecorator agrega los encabezados de autenticación de token API requeridos a las solicitudes. El objeto de valor apikey mantiene el token en secreto, evitando la exposición accidental.
Con el PSR18ClientDecorator puede usar cualquier cliente HTTP que admita el estándar PSR-18 para realizar la solicitud HTTP preBuida.
Si prefiere usar un cliente HTTP que no admite el estándar PSR-18, alternativamente puede hacer un decorador simple que llama al cliente HTTP utilizando los datos de solicitud de formato PSR-18 Solicitinterface y convertir la respuesta del cliente HTTP a un PSR- 18 Respuesta de formato de Interface Response.
Por ejemplo, en nuestra prueba de integración estamos utilizando GuzzLeclient con un decorador que usa esta conversión 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 ' ))
);
Esto realiza una solicitud API con el número de registro AA19PPP
y la variable $vehicleDetails
contendrá un objeto enquiryResponse que contiene todos los datos de respuesta de la API devueltos en objetos de valor.
Este ejemplo está utilizando la URL de la API UAT y un número de registro de prueba. Los números de registro de prueba para respuestas simuladas de los diferentes casos de prueba están disponibles en la documentación de la API del servicio de consulta de vehículos DVLA.