teamzac/openzac-api-php

openzac.com 官方 PHP API 客户端

2.0 2017-09-09 02:45 UTC

This package is auto-updated.

Last update: 2024-09-19 11:03:42 UTC


README

这是 OpenZac API 的 PHP 客户端。

入门指南

您需要一个 API 密钥。您可以在 https://openzac.com 获取。

创建客户端实例

$apiToken = 'YOUR_TOKEN';
$client = new TeamZac\OpenZac\OpenZac($apiToken);

在 Laravel 中

在您的 config/app.php 文件中包含服务提供者

TeamZac\OpenZac\OpenZacServiceProvider::class,

发布包的配置文件

$ php artisan vendor:publish --provider="TeamZac\OpenZac\OpenZacServiceProvider"

将您的 API 令牌添加到 .env 文件中,最好是这里

OPENZAC_API_TOKEN=YOUR_TOKEN

或者直接在配置文件中设置

'token' => 'YOUR_TOKEN'

服务提供者将 TeamZac\OpenZac\OpenZac 的单例实例绑定到 IoC 容器,您可以使用键 'OpenZac' 访问它

app('OpenZac');

使用客户端

以下文档假设您正在使用 Laravel。如果不是,您可以将 app('OpenZac') 替换为 TeamZac\OpenZac\OpenZac 的普通实例。

我们正在完善 API 的流畅接口,但现在您只需在客户端上使用 get() 方法,提供一个 URI 路径,以及您希望传递的任何参数或头信息

app('OpenZac')->get('entities/austin-texas');

app('OpenZac')->get('sales-tax/collections/2016/11', [
    'page' => 2,
    'take' => 25
]);

检索实体

我们确实为访问 'entity' 资源提供了一个最小化开发的接口。您可以使用 OpenZac 实例上的 entities 属性访问此接口

app('OpenZac')->entities;

此资源有两个公共方法:all()find()

all()

app('OpenZac')->entities->all() 等同于调用 get('entities')。您可以将查询参数数组作为唯一参数传递

app('OpenZac')->entities->all(['page' => 3]);

find()

find() 方法接受一个实体 ID 作为其唯一参数,并将检索单个实体记录。

app('OpenZac')->entities->find('austin-texas');

资源和集合

API 调用返回 TeamZac\OpenZac\Support\ResourceTeamZac\OpenZac\Support\ResourceCollection 实例。

TeamZac\OpenZac\Support\Resource

目前这只是一个简单的响应包装器,允许您将数据作为资源的属性访问。

$austin = app('OpenZac')->entities->find('austin-texas');
$austin->name;
// prints 'Austin'

该基础设施已到位,可以通过使用此作为基类来提供更有用的功能。未来的开发计划包括每个资源都有自己的子类。这将允许将属性转换为某些数据类型,并可能具有其他有价值的特性。

TeamZac\OpenZac\Support\ResourceCollection

这是一个简单的响应包装器,用于返回多个资源。它有几个公共方法可能很有用

data() 返回资源,这些资源是 TeamZac\OpenZac\Support\Resource 的子类。

meta() 返回与响应关联的任何元数据。通常这将是与分页相关的信息。

nextPage() 返回下一页码或 null 如果不存在。

previousPage() 返回上一页码或 null 如果不存在。