omitobisam / laravel-habitue
一款具有集合力量,用于Jsonable请求的Http客户端
v5.0-alpha
2020-03-31 18:22 UTC
Requires
- php: >=7.4
- guzzlehttp/guzzle: ^6.3
- tightenco/collect: ^7.2
Requires (Dev)
- phpunit/phpunit: ~8.0
This package is auto-updated.
Last update: 2024-09-17 14:14:38 UTC
README
关于 Habitue
Habitue 是一款具有集合力量的Http客户端,用于处理Jsonable请求。它可用于Laravel和非Laravel的PHP项目。
安装
使用 composer
composer require omitobisam/laravel-habitue
或将其添加到 composer.json
文件的 require 对象中,并指定版本号
{ "require": { "omitobisam/laravel-habitue": "v7.0" } }
之后运行 composer update
使用方法
您可以简单静态地调用它
use Habitue\Habitue; // or simply Habitue::make() // An instance of Habitue ->setBody(['page' => 2]) //set body ->setHeaders(['x-key' => 'abcd']) // set header(s) ->get('https//abc.example/ninjas'); // or ->post()
或者您可以在类中配置它
use Habitue\Habitue; class RequestService { private Habitue $habitue; public function __construct(Habitue $habitue) { $this->habitue = $habitue; } }
然后调用方法进行Http请求
use Habitue\Habitue; /** * @var $response \Habitue\Integration\Response */ $response = Habitue::make() ->get('https://ninja.example/users'); $response->json(); //returns json string of the response body $response->array(); // returns array value of the response body $response->getStatusCode(); //returns status code $response->getHeaders(); // returns the headers $response->collect(); // returns the response body in an instance of Habitue\Collector
collect
方法是一个智能的集合,提供了Laravel Collection中的所有方法,有助于提取响应中深层嵌套的值。假设您的响应如下
{ "name":"John Doe", "age":11, "height":57, "address": { "postal": { "code":"11111", "region":"lc" }, "city":"Tartu" } }
您可以使用以下方法获取 code
值
use Habitue\Habitue; /** * @var $collected \Habitue\Integration\Collector */ $collected = Habitue::make() ->get('https://ninja.example/users') ->collect(); $collected->get('name'); //John Doe $collected->getName(); // John Doe $collected->getAddress() // Collection with {"postal": {"code":"11111","region":"lc"}, "city":"Tartu"} ->getPostal() // Collection with {"code":"11111","region":"lc"} ->getCode(); //11111
可用的API
Habitue 类
\Habitue\Habitue::__construct(Client $client): void \Habitue\Habitue::setHeaders(): HabitueInterface \Habitue\Habitue::setBody(): HabitueInterface \Habitue\Habitue::get(string $url, array $data = []): ResponseInterface \Habitue\Habitue::post(string $url, array $data = []): ResponseInterface \Habitue\Habitue::patch(string $url, array $data = []): ResponseInterface \Habitue\Habitue::put(string $url, array $data = []): ResponseInterface \Habitue\Habitue::delete(string $url, array $data = []): ResponseInterface \Habitue\Habitue::make($client = null): HabitueInterface
响应类
\Habitue\Integration\Response::__construct(): void \Habitue\Integration\Response::collect(): CollectorInterface \Habitue\Integration\Response::array(): array \Habitue\Integration\Response::json(): string \Habitue\Integration\Response::getStatusCode(): int \Habitue\Integration\Response::getHeaders(): array \Habitue\Integration\Response::getWrapped(): GuzzleResponseInterface \Habitue\Integration\Response::make($response): ResponseInterface \Habitue\Integration\Response::__toString(): string
贡献
- 创建一个问题
- 提交一个PR
- 它得到批准
- 它得到合并