PHP 的 Yate 核心产品 API 封装器

0.1.0 2024-01-03 15:02 UTC

This package is auto-updated.

Last update: 2024-09-03 16:49:53 UTC


README

目的

此软件包旨在简化与 Yate 核心产品 API 的通信。使用 composer 和 PSR-4 自动加载构建,仅依赖 PSR 标准实现,并易于与 DI 容器集成。

它与大多数依赖项解耦,需要标准的 PSR 接口而不是确切的实现。它使用

  • PSR-7 标准接口,用于请求、响应和流
  • PSR-17 标准接口,用于请求工厂和流工厂以创建 PSR-7 对象
  • PSR-18 标准接口,用于 HTTP 客户端

用法

简单用法示例 开始,检查 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命令运行所有模块化测试