lessmore92/api-consumer 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

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

lessmore92/api-consumer

Composer 安装命令:

composer require lessmore92/api-consumer

包简介

Build REST API consumer easier than ever

README 文档

README

Build REST API consumer (client) easier than ever

Installing

Easily install it through Composer:

composer require lessmore92/api-consumer

Support

PHP >=5.5

Usage

Easily extends your class from ApiConsumer and impalements ConfigApi method, and builds your awesome API Client.

Example:

Below is the minimum requirement to start building API client: ConfigApi

use Lessmore92\ApiConsumer\ApiConsumer;
use Lessmore92\ApiConsumer\Builders\ApiBuilder;

class MyApi extends ApiConsumer
{
    /**
     * @return ApiBuilder
     */
    protected function ConfigApi()
    {
        $api = new ApiBuilder();
        $api->setHeaderApiKey('API-TOKEN','X-API-Key');
        $api->setBaseUrl('https://MY-API-BASE-URL.COM/');
        return $api;
    }
}

If the api key needs to be placed in the query string use setQueryApiKey instead of setHeaderApiKey for example $api->setQueryApiKey('API-TOKEN','TOKEN');

The Magic of $this->Request()

By inheriting ApiConsumer your class will be able to utilize $this->Request() method, which supports chaining. With $this->Request() you will be able to access all the features and functionalities to make your request.

Define your first method to receive data from api: Simple GET Request

To specify an endpoint to be called, you must use ->Endpoint() method. After that by chaining ->Get() method at the end, REQUEST METHOD is specified as GET.

use Lessmore92\ApiConsumer\ApiConsumer;
use Lessmore92\ApiConsumer\Builders\ApiBuilder;

class MyApi extends ApiConsumer
{
    /**
     * @return ApiBuilder
     */
    protected function ConfigApi()
    {
        $api = new ApiBuilder();
        $api->setHeaderApiKey('API-TOKEN','X-API-Key');
        $api->setBaseUrl('https://MY-API-BASE-URL.COM/');
        return $api;
    }

    public function Users()
    {
        $users = $this->Request()
                      ->Endpoint('users')
                      ->Get()
        ;

        return $users->body;
    }
}

In the above example we defined a method to GET Users list from server.

By calling Users() method, in fact we are getting https://MY-API-BASE-URL.COM/users

Make another request: Add Query String

To pass data in query string (e.g to search, order or filter) you can use ->AddQueryString() method.

public function SearchUsers($search)
{
    $users = $this->Request()
                  ->Endpoint('users')
                  ->AddQueryString('search', $search)
                  ->Get()
    ;

    return $users->json_body;
}

In the above example we defined a method to search in users.

By calling SearchUsers('alex') method, in fact we are getting https://MY-API-BASE-URL.COM/users?search=alex

Make another request: Get result in json format

To receive data as json, you must use ->AcceptJson() method.

public function SearchUsers($search)
{
    $users = $this->Request()
                  ->Endpoint('users')
                  ->AcceptJson()
                  ->Get()
    ;

    return $users->json_body;
}

As you can see in the code above, by chaining ->AcceptJson() in request we are telling to api server that we accept json, then in the return line we are returning a json formatted search result.

For json data format, your api server must be able to provide json formatted response and support HEADER 'accept : application/json'

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: mit
  • 更新时间: 2020-02-02

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固