司法部/postcodeinfo-client-php

MoJ Postcode Info API 的 PHP API 客户端包装器

此软件包的规范仓库似乎已丢失,因此软件包已被冻结。

v4.0.0 2016-05-13 13:40 UTC

README

MoJ DS PostcodeInfo 服务的 PHP API 客户端。

PSR-7 HTTP

Postcode Lookup PHP 客户端基于 PSR-7 HTTP 模型。因此,您需要选择您喜欢的 HTTP 客户端库来使用。

这里将使用 Guzzle v6 适配器展示示例。

还提供了 CurlGuzzle v5 的安装说明。

安装

Postcode Lookup PHP 客户端可以使用 Composer 安装。运行此命令

composer require php-http/guzzle6-adapter ministryofjustice/postcodeinfo-client-php

使用

身份验证

您需要一个 身份验证令牌(auth token)。如果您使用的是 MOJ DS 的 Postcode Info 服务器,可以通过将简要说明通过电子邮件发送到 platforms@digital.justice.gov.uk 来获取令牌,包括

  • 您是谁
  • 您将使用它来做什么项目
  • 您预计每天将执行多少次查找

如果您正在运行自己的服务器,请参阅 https://github.com/ministryofjustice/postcodeinfo#auth_tokens 了解如何创建令牌的说明。

实例化

假设您已通过 Composer 安装了软件包,Postcode Lookup PHP 客户端将通过自动加载器可用。

使用

$client = new \MinistryOfJustice\PostcodeInfo\Client([
    'apiKey'        => '{your api key}',
    'httpClient'    => new \Http\Adapter\Guzzle6\Client
]);

然后您可以使用 $client 访问 Postcode Lookup API。

如果您需要访问除生产环境以外的环境,您可以在构造函数中通过 baseUrl 键传递基本 URL

'baseUrl' => '{api base url}'

返回一个邮编的地址列表

// Return a list of addresses
$addresses = $client->lookupPostcodeAddresses('SW19 5AL');

// Check if any addresses were found
$found = !empty($addresses);

// Count the addresses found
$numberFound = count($addresses);

// Iterate over the returned addresses
foreach ($addresses as $address) {

		// Available properties include...
        $address->uprn;
        $address->organisation_name;
        $address->building_name;
        $address->sub_building_name;
        $address->building_number;
        $address->post_town;
        $address->postcode;
        $address->postcode_type;
        $address->formatted_address;
        $address->thoroughfare_name;
        $address->dependent_locality;
        $address->double_dependent_locality;
        $address->po_box_number;

        // Coordinate info is under...
		$address->point->getLatitude();
        $address->point->getLongitude();

	}

返回有关邮编的元数据

$metadata = $client->lookupPostcodeMetadata('AB12 4YA');

// You then have access to the following properties...
$metadata->country->name;
$metadata->country->gss_code;

$metadata->local_authority->name;
$metadata->local_authority->gss_code;

$metadata->centre->getLatitude();
$metadata->centre->getLongitude();

测试

要运行测试,请添加一个名为 spec/api_key 的文件。在此文件中,放置邮编信息服务的 API 令牌。

安装 composer 依赖项

php composer.phar install

然后,从存储库的根目录

bin/phpspec run --format=pretty -vvv --stop-on-failure

许可证

Postcode Lookup PHP 客户端在 MIT 许可证下发布,许可证副本可在 LICENSE 中找到。