Реализация клиента PHP для запроса DVLA автомобиля API V1. Этот пакет предоставляет:
Вы можете установить библиотеку через композитор.
composer require lendable/dvla-vehicle-enquiry-api-client
Класс клиента реализует API DVLA REST и может вернуть сферу применения автомобилей, который можно использовать для запроса деталей автомобиля.
Для экземпляра класса клиента нам необходимо ввести декораторы, которые добавляют аутентификацию ключа API, и слои совместимости PSR-18. Кроме того, нам нужно определить базовый URI API, чтобы легко переключаться между UAT и Live Service.
Спецификация API содержит UAT и Live URL. Данный URI не должен заканчиваться с помощью Slash ( /
) и должен содержать путь /v1
.
Например: https://uat.driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1
Клиент принимает URI в любой реализации PSR-7 UriInterface.
ApikeyauthhttpclientDecorator добавляет необходимые заголовки аутентификации токена API в запросы. Объект Value Apikey сохраняет токен в секрете, избегая случайного воздействия.
С помощью PSR18ClientDecorator вы можете использовать любого клиента HTTP, который поддерживает стандарт PSR-18 для выполнения предварительно построенного HTTP-запроса.
Если вы предпочитаете использовать клиент HTTP, который не поддерживает стандарт PSR-18, вы можете альтернативно сделать простой декоратор, который называет клиенту HTTP, используя данные запроса Format Format PSR-18 и преобразовать ответ клиента HTTP на PSR- 18 Ответ формата ответа.
Например, в нашем интеграционном тесте мы используем 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 в объектах значения.
Этот пример использует URL UAT API и регистрационный номер тестирования. Номера регистрации тестирования для издевательных ответов различных тестовых случаев доступны в документации API API службы запроса DVLA.