承接 atog/simple-api-client 相关项目开发

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

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

atog/simple-api-client

Composer 安装命令:

composer require atog/simple-api-client

包简介

Simple API Client with cUrl

README 文档

README

Latest Version on Packagist GitHub license Travis HHVM Quality Score Scrutinizer Coverage Total Downloads

The simple-api-client library provides an easy way to build wrappers for public REST APIs.

Install

Via Composer

$ composer require atog/simple-api-client

Usage

Classes

Client

The Client Class contains the basic Informations about the API liek the $domain. It has to extend the abstract class Atog\Api\Client

class Client extends \Atog\Api\Client
{
	protected $domain = 'http://example.com/api/v1';
}

Endpoints

Endpoints provide the functions to query the resources of the API.

class TestEndpoint extends \Atog\Api\Endpoint
{
	protected $endpoint = 'foo';

	public function find($slug)
    {
        // https://example.com/api/v1/foo/$slug gets called
		$this->respond(
		    $this->client->get($this->getEndpointUrl($slug, true))
		); 
    }
}

Models

The Models are the datastructures of the resources. Attributes can easly be changed with get and set mutators (much like the Eloquent Mutators from Laravel: https://laravel.com/docs/5.2/eloquent-mutators)

class TestModel extends Model
{
    public function getNameAttribute($value)
    {
    	return strtoupper($value);
    }

    public function setFirstNameAttribute($value)
    {
    	$this->attributes['first_name'] = strtolower($value);
    }

    public function setContactsAttribute($value)
    {
    	$this->attributes['contacts'] = $this->makeCollection($value, Contacts::class);
    }
}

Initialization

The first parameter defines all endpoints you are using. The second provides some options about the models or cUrl. In the models config we can bind a model to an endpoint

// new Client(array $endpoints, array $config = [])
$client = new Client(
    [
        TestEndpoint::class
    ],
    [
        'models' => [
            'TestEndpoint' => TestModel::class
        ],
        'curl' => [
            CURLOPT_TIMEOUT => 60
        ]
    ]
);
$foo = $client->testEndpoint->find(1); // GET http://example.com/api/v1/foo/1

Change log

1.1.0

  • added support for query params
  • added helper method to return api reponse

1.0.0

  • Initial Release

Testing

$ composer test

License

The MIT License (MIT). Please see License File for more information.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-04-15

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固