teamzac / openzac-api-php
openzac.com 官方 PHP API 客户端
Requires
- php: >=5.7
- guzzlehttp/guzzle: ~6.0
- illuminate/support: 5.4.*
- nesbot/carbon: ~1.20
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~5.7
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\Resource
或 TeamZac\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
如果不存在。