carsdotcom / php-request-class
将Guzzle API请求的逻辑结构化到面向对象的类中
v1.2.1
2024-08-20 19:10 UTC
Requires
- php: ^8.1
- ext-simplexml: *
- carsdotcom/laravel-json-schema: ^v1.0 || v2.0 || v2.1
- guzzlehttp/guzzle: ^7.5
- laravel/framework: ^9.19 || ^10.0 || ^11.0
Requires (Dev)
- fakerphp/faker: ^1.9.1
- nunomaduro/collision: ^6.1|7.*|8.*
- orchestra/testbench: 7.*|8.*|9.*
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ~8.0|~9.0|^10.5
- squizlabs/php_codesniffer: ^3.7
- timacdonald/log-fake: ^2.1
This package is auto-updated.
Last update: 2024-09-20 19:19:54 UTC
README
将Guzzle API请求的逻辑结构化到面向对象的类中
是什么?
我们维护一个依赖于数十个REST API的应用程序,其中大部分没有SDK。
我们非常喜欢Guzzle!但大部分文档都假设发送请求是“简单”的,只需要几行代码。
但我们在实际使用中发现,围绕Guzzle请求的结构可能会达到数百行,管理诸如认证、在我们内部类型和合作伙伴类型之间转换数据等前置条件。
因此,我们创建了AbstractRequest
作为一个标准化的方式来
- 将逻辑组织到类中。
- 提供可交换的编码和解码特性(XML、JSON、表单,甚至是简化的GraphQL!)
- 使用Laravel的文件外观记录所有内容
- 使用Laravel的缓存外观进行缓存(带有简单的自动缓存键生成器)
- 提供链式前置条件的结构(如认证)
- 提供捕获异常并将响应解析回内部逻辑的结构
- 允许您将关于调用顺序或同步/异步处理的决策推迟到请求类的用户
运行测试
安装开发依赖项
composer install
然后在项目的根目录下运行phpunit
./vendor/bin/phpunit