定制 masnathan/api-caller 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

masnathan/api-caller

最新稳定版本:v2.0.0

Composer 安装命令:

composer require masnathan/api-caller

包简介

Calling APIs made easy.

README 文档

README

Downloads with Composer SensioLabs Insight ReiDuKuduro @gittip

APIcaller is a class that helps you build API wrappers.
You don't have to worry about building URLs, or even about parsing the requested data.

How to use

You will have to extend the Client class and the Caller class, the Client will handle all the configuration to use on the requests and the Caller will be used as the interface to interact with the API.

use MASNathan\APICaller\Client;
use MASNathan\APICaller\Caller;

class MyPackageClient extends Client
{
    /**
     * Here you can set the default headers and parameters on a global scope
     */
    public function __construct($ip = null)
    {
        $this->setDefaultHeaders([
            'User-Agent' => 'PHP APICaller SDK',
            'Accept'     => 'application/json',
            'Token'      => '123456',
        ]);
        $this->setDefaultParameters([
            'ip' => $ip ?: '127.0.0.1',
        ]);
    }

    /**
     * Returns the API Endpoint
     *
     * @return string
     */
    public function getEndpoint()
    {
        return 'http://api.domain.com/v1/';
    }
}

class MyPackageCaller extends Caller
{
    public function requestSomething($foo, $bar)
    {
        $params = [
            'foo' => $foo,
            'bar' => $bar,
        ];

        // this will result in this url http://api.domain.com/v1/some-method.json?ip={$ip}&foo={$foo}&bar={$bar}
        $response = $this->client->get('some-method.json', $params);

        $data = $this->handleResponseContent($response, 'json');

        // Do something with your data

        return $data;
    }
}

Well, this is how you can start creating your class, now, lets make some calls!

$client = new MyPackageClient('8.8.8.8');
$caller = new MyPackageCaller($client);

$result = $caller->requestSomething(13, 37);

var_dump($result);

This will call the following url:http://api.domain.com/v1/some-method.json?ip=8.8.8.8&foo=13&bar=37.

Installation

To install the SDK, you will need to be using Composer in your project. If you don't have composer installed check this page and follow the installation steps

This library is not hard coupled to Guzzle or any other library that sends HTTP messages. It uses an abstraction called HTTPlug. This will give you the flexibility to choose what PSR-7 implementation and HTTP client to use.

To get started ASAP you should run the following command:

# Add APIcaller as a dependency
$ composer require masnathan/api-caller php-http/curl-client guzzlehttp/psr7

Why do I need to require all those packages?

APICaller depends on the virtual package php-http/client-implementation which requires to you install an adapter, but we do not care which one. That is an implementation detail in your application. We also need a PSR-7 implementation and a message factory.

You don't have to use the php-http/curl-client if you don't want to. Read more about the virtual packages, why this is a good idea and about the flexibility it brings at the HTTPlug docs.

License

This library is under the MIT License, see the complete license here

统计信息

  • 总下载量: 1.21k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 2
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 6
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2013-10-03

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固