pimoudeveldhuis/laravel-postcode-nl

使用Postcode.nl REST API进行荷兰地址验证的Laravel客户端。

10.0.1 2023-10-30 20:01 UTC

This package is auto-updated.

Last update: 2024-09-14 09:12:31 UTC


README

Build Status License

使用Postcode.nl REST API进行荷兰地址验证的客户端。

此包的所有工作都由Gerben Speelpenning完成,我只是更新了composer.json以使其与Laravel 10兼容,并将其提交到Packagist以便于安装。但如果由于Laravel更新或PostcodeNL API的更新有任何问题,请告知我,以便我修复它们!

安装

通过Composer拉取此包

composer require pimoudeveldhuis/laravel-postcode-nl

接下来,注册Postcode.nl账户以获取密钥和秘密。更多信息请参见 https://api.postcode.nl/#register。一旦您拥有密钥和秘密,将它们存储在您的.env文件中。

将以下服务提供程序添加到您的应用程序配置中

Speelpenning\PostcodeNl\PostcodeNlServiceProvider::class,

按照配置部分进行操作,以确保一切正常工作。

使用方法

有两种方式可以使用地址查找:将地址查找服务注入到您的代码中,或者使用随包一起提供的AddressController。

依赖注入

示例

<?php

use Exception;
use Speelpenning\PostcodeNl\Services\AddressLookup;

class AddressDumper {

    /**
     * @var AddressLookup
     */
    protected $lookup;
    
    /**
     * Create an address dumper instance.
     *
     * @param AddressLookup $lookup
     */
    public function __construct(AddressLookup $lookup)
    {
        $this->lookup = $lookup;
    }
    
    /**
     * Dumps the address details on screen.
     *
     * @param string $postcode
     * @param int $houseNumber
     * @param null|string $houseNumberAddition
     */
    public function dump($postcode, $houseNumber, $houseNumberAddition = null)
    {
        try {
            $address = $this->lookup->lookup($postcode, $houseNumber, $houseNumberAddition);
            dd($address);
        }
        catch (Exception $e) {
            exit('Ow, that went wrong...');
        }
    }

}

使用JSON API

为了使用API,请在配置中启用它。启用后,以下路由可用

route('postcode-nl::address', [$postcode, $houseNumber, $houseNumberAddition = null]);

或者使用以下URL(例如,用于AJAX调用)

/postcode-nl/address/{postcode}/{houseNumber}/{houseNumberAddition?}

配置

凭证(必需)

密钥和秘密用于身份验证。没有它们,您不能使用此服务。

POSTCODENL_KEY=<your-api-key>
POSTCODENL_SECRET=<your-secret>

启用路由(可选)

此包附带一个可用的JSON API,默认情况下已禁用。您可以通过以下方式启用它

POSTCODENL_ENABLE_ROUTES=true

超时时间(秒,可选)

默认情况下,客户端等待10秒以获得响应。您可以设置不同的超时时间。

POSTCODENL_TIMEOUT=<timeout-in-seconds>