DVLA 차량 문의 API V1의 PHP 클라이언트 구현. 이 패키지는 다음을 제공합니다.
작곡가를 통해 라이브러리를 설치할 수 있습니다.
composer require lendable/dvla-vehicle-enquiry-api-client
클라이언트 클래스는 DVLA의 REST API를 구현하고 차량 세부 사항을 요청하는 데 사용할 수있는 차량 범위를 반환 할 수 있습니다.
클라이언트 클래스의 인스턴스화를 위해 API 키 인증을 추가하는 데코레이터와 PSR-18 호환성 레이어를 주입해야합니다. 또한 UAT와 라이브 서비스를 쉽게 전환하려면 API의 기본 URI를 정의해야합니다.
API의 사양에는 UAT 및 Live URL이 포함되어 있습니다. 주어진 URI는 슬래시 ( /
)로 끝나지 않아야하며 /v1
경로도 포함해야합니다.
예를 들어 https://uat.driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1
클라이언트는 PSR-7 Uriinterface 구현에서 URI를 수락합니다.
ApikeyauthhttpclientDecorator는 필요한 API 토큰 인증 헤더를 요청에 추가합니다. Apikey value 객체는 우발적 인 노출을 피하면서 토큰을 비밀로 유지합니다.
PSR18ClientDecorator를 사용하면 PSR-18 표준을 지원하는 HTTP 클라이언트를 사용하여 사전 제작 된 HTTP 요청을 수행 할 수 있습니다.
PSR-18 표준을 지원하지 않는 HTTP 클라이언트를 선호하는 경우 PSR-18 RequestInterface 형식 요청 데이터를 사용하여 HTTP 클라이언트를 호출하는 간단한 데코레이터를 만들고 HTTP 클라이언트의 응답을 PSR-로 변환 할 수 있습니다. 18 ResponseNterface 형식 응답.
예를 들어 통합 테스트 에서이 PSR-18 변환을 사용하는 데코레이터와 함께 guzzleclient를 사용하고 있습니다.
<?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 ' ))
);
이는 AA19PPP
등록 번호로 API 요청을 만들고 $vehicleDetails
변수에는 값 객체에 반환 된 모든 API 응답 데이터가 포함 된 eNquirErsponse 객체가 포함됩니다.
이 예제는 UAT API URL과 테스트 등록 번호를 사용합니다. 다양한 테스트 사례의 모의 응답에 대한 테스트 등록 번호는 DVLA 차량 문의 서비스 API 문서에서 제공됩니다.