jdwx / json-api-client
一个简单的JSON API客户端及其支持工具。
v1.1.1
2024-08-22 22:49 UTC
Requires
- ext-json: *
- guzzlehttp/guzzle: ^7.0
- guzzlehttp/psr7: ^2.0
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0
Requires (Dev)
- jetbrains/phpstorm-attributes: ^1.0
- phpunit/phpunit: ^9.5
README
一个简单的PHP模块,用于与JSON API服务交互。
安装
您可以直接使用Composer要求它
composer require jdwx/json-api-client
或者从GitHub下载源代码:https://github.com/jdwx/json-api-client.git
要求
此模块需要PHP 8.3或更高版本。默认实现依赖于出色的Guzzle HTTP客户端实现。它还需要JSON扩展。
目标是尽可能接近PSR HTTP客户端接口,但该领域仍需更多工作。
用法
以下是一个基本用法示例
$client = JDWX\JsonApiClient\HttpClient::withGuzzle( 'https://api.example.com' ); $rsp = $client->request( 'GET', '/v1/resource' ); if ( ! $rsp->isSuccess() ) { $uStatus = $rsp->status(); echo "{$uStatus} Error: ", $rsp->body(), "\n"; exit( 1 ); } if ( ! $rsp->isJson() ) { $stContentType = $rsp->getOneHeader( 'content-type' ) ?? 'none'; echo "Error: Expected JSON content-type, got: {$stContentType}\n"; exit( 1 ); } $data = $rsp->json(); var_dump( $data );
此模块还有100%的测试覆盖率,提供了更多用法示例。
稳定性
此模块被认为是稳定的,并在生产代码中使用。然而,它是基于多个先前实现于2024年新开发的,因此它没有像本系列中的一些其他模块那样接受相同程度的测试和广泛使用。话虽如此,它每天成功处理数十万个API调用。
历史
此模块是从四个现有的独立模块重构出来的,这些模块用于在更大的代码库中与JSON API交互。它基本上是从头重写的。它最初于2024年发布。