Implementação do cliente PHP para a API de consulta ao veículo DVLA V1. Este pacote fornece:
Você pode instalar a biblioteca via compositor.
composer require lendable/dvla-vehicle-enquiry-api-client
A classe cliente implementa a API REST do DVLA e pode devolver o escopo dos veículos, que pode ser usado para solicitar os detalhes do veículo.
Para a instanciação da classe do cliente, precisamos injetar os decoradores que adicionam a autenticação da chave da API e as camadas de compatibilidade do PSR-18. Além disso, precisamos definir o URI base da API para alternar facilmente entre o UAT e o serviço ao vivo.
A especificação da API contém o UAT e o URL vivo. O URI fornecido não deve terminar com barra ( /
) e também deve conter o caminho /v1
.
Por exemplo: https://uat.driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1
O cliente aceita o URI em qualquer implementação do PSR-7 Uriinterface.
O apikeyauthhttpclientDecorator adiciona os cabeçalhos de autenticação de token da API necessários às solicitações. O objeto Apikey Value mantém o segredo do token, evitando a exposição acidental.
Com o PSR18ClientDecorator, você pode usar qualquer cliente HTTP que suporta o padrão PSR-18 para executar a solicitação HTTP pré-construída.
Se você preferir usar um cliente HTTP que não suporta o padrão PSR-18, alternativamente, é possível fazer um decorador simples que chama o cliente HTTP usando os dados da solicitação de formato PSR-18 RequestInterface e converta a resposta do cliente HTTP a um PSR- 18 ResponseInterface Format Response.
Por exemplo, em nosso teste de integração, estamos usando o GuzzLeclient com um decorador que usando esta conversão 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 ' ))
);
Isso faz com que uma solicitação de API com o número de registro AA19PPP
e a variável $vehicleDetails
conterá um objeto EnquiryResponse que contém todos os dados de resposta da API retornada nos objetos Value.
Este exemplo está usando o UAT API URL e um número de registro de teste. Números de registro de teste para respostas simuladas dos diferentes casos de teste estão disponíveis na documentação da API do serviço de consulta ao veículo DVLA.