yate-wireless / api
PHP 的 Yate 核心产品 API 封装器
Requires
- php: ^7.4|^8.0|^8.1|^8.2|^8.3
- psr/http-client-implementation: ^1.0
- psr/http-factory-implementation: ^1.0
- psr/http-message-implementation: ^1.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.2
- phpunit/phpunit: ^9.6
This package is auto-updated.
Last update: 2024-09-03 16:49:53 UTC
README
目的
此软件包旨在简化与 Yate 核心产品 API 的通信。使用 composer 和 PSR-4 自动加载构建,仅依赖 PSR 标准实现,并易于与 DI 容器集成。
它与大多数依赖项解耦,需要标准的 PSR 接口而不是确切的实现。它使用
用法
从 简单用法示例 开始,检查 ApiGen 文档。此库可以简化核心组件的通信,但您仍需要深入了解架构、实体和逻辑。使用 Yate API 文档。
大多数情况下,您只需要
- 创建
Config
对象,它携带 Yate 核心产品的位置和凭据 - 使用 Config 和其他依赖关系配置
Api
类实例(手动、自动装配、容器等) - 使用
call()
方法向适当的节点发送 API 请求,并获取ApiResponse
对象 - 以关联数组或属性的方式访问响应字段
更复杂的情况:您可以使用 prepareRequest()
方法将您的功能请求转换为 API 的 PSR-7 标准请求对象,发送它,获取 PSR-7 响应对象,然后使用静态 Api::parseResult()
将其转换为 ApiResponse
对象。这对于不支持 PSR-18 客户端接口的异步和批量操作非常有用。
例如,您需要尽快完成 1000 个独立的调用,因此您可以使用上述方法与 Guzzle 的 并发请求 功能结合使用,这样 Guzzle 就可以处理并发调用,而此库提供 API 请求到 PSR-7 请求和 PSR-7 响应到功能结果的转换。
此外,prepareRequest()
和 Api::parseResult()
应在异步调用/承诺中运行良好,并可用于额外的承诺层以实现异步调用到 Yate API。
安装
在 Composer 存储中。只需添加适当的 require 部分
"require": {
"yate-wireless/api": "^0.1"
}
在更改使用的版本之前,请参阅 变更日志。
依赖关系
Composer 依赖项
- php: ^7.4|^8.0|^8.1|^8.2|^8.3
- psr/http-message-implementation: ^1.0
- psr/http-factory-implementation: ^1.0
- psr/http-client-implementation: ^1.0
测试
在 php 7.4 到 8.3 上使用 PHPUnit 9.6 进行测试,100% 覆盖率,但这并不意味着一切都会按预期工作。单元测试使用 Guzzle PSR-7。
目前在Github流中进行的当前测试和兼容性状态检查(点击查看)
要测试,请以开发模式安装并使用
- 从库根目录使用
composer test
命令运行所有模块化测试