承接 esi/api 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

esi/api

最新稳定版本:v1.1.0

Composer 安装命令:

composer require esi/api

包简介

A simple wrapper/builder using Guzzle for base API clients.

README 文档

README

Build Status Code Coverage Scrutinizer Code Quality Continuous Integration Latest Stable Version Downloads per Month License

esi/api is a simple wrapper/builder using Guzzle for base API clients.

Note

Documentation will be a bit lackluster, and the unit tests need a lot of work. With that being said, I created this library more for use in my own projects that center around an API service; to decouple a lot of the logic that would be repeated in each API service library, to its own library. It has a long way to go, but it should be relatively stable.

Installation

You can install the package via composer:

$ composer require ericsizemore/api

Features

  • Builds around guzzle/guzzle as the HTTP Client.
  • Cache's requests via Kevinrob/guzzle-cache-middleware.
  • Can retry requets on a connection or server error via the Guzzle Retry Middleware.
    • Client::enableRetryAttempts() to instruct the client to attempt retries.
    • Client::disableRetryAttempts() to disable attempt retries.
    • Client::setMaxRetryAttempts() to set the maximum number of retries.
  • Can pass along headers in Client::build() to be 'persistent' headers, i.e. headers sent with every request.
  • One function that handles sending a request: Client::send()

It currently does not support async requests and pooling. Just your regular, good 'ol, standard requests.

Usage

use Esi\Api\Client;

// api url, api key, cache path, does the api require key sent as a query arg, the name of the query arg
$client = new Client('https://myapiurl.com/api', 'myApiKey', '/var/tmp', true, 'api_key');

// Must first 'build' the client with (optional) $options array which can include any valid Guzzle option.
$client->build([
    'persistentHeaders' => [
        'Accept' => 'application/json',
    ],
    'allow_redirects' => true,
    // ... etc.
]);
$client->enableRetryAttempts();
$client->setMaxRetryAttempts(5);

$response = $client->send('GET', '/', ['query' => ['foo' => 'bar']]);

// Decode the json and return as array
$data = $client->toArray($response);

// or... as an object
$data = $client->toObject($response);

// or... for the raw json response, to do with as you will
$data = $client->raw(); // or $response->getBody()->getContents()

Requirements

  • PHP 8.2.0 or above.

Credits

Contributing

See CONTRIBUTING.

Bugs and feature requests are tracked on GitHub.

Contributor Covenant Code of Conduct

See CODE_OF_CONDUCT.md

Backward Compatibility Promise

See backward-compatibility.md for more information on Backwards Compatibility.

Changelog

See the CHANGELOG for more information on what has changed recently.

License

See the LICENSE for more information on the license that applies to this project.

Security

See SECURITY for more information on the security disclosure process.

统计信息

  • 总下载量: 4
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 6
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 6
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-02-06

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固