bakaphp/canvas-sdk-php

此软件包已被废弃,不再维护。没有建议的替代软件包。

用于访问Kanvas API的PHP客户端库

dev-master / 1.0.x-dev 2020-06-15 18:58 UTC

README

Kanvas PHP库提供了一种方便的方式来从PHP语言编写的应用程序中访问Kanvas API。它包括一组预定义的类,用于API资源,这些类会根据API响应动态初始化自己,这使得它与广泛的Kanvas API版本兼容。此SDK基于Stripe SDK(感谢Stripe)。

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

用于访问Canvas API的PHP客户端库

安装

通过Composer

$ composer require bakaphp/canvas-sdk-php

用法

use Kanvas\Sdk\Auth;
use Kanvas\Sdk\Kanvas;
Kanvas::setApiKey($appApiKey);
Auth::auth([
        'email' => 'kanvas@mctekk.com', 
        'password' => 'somethingpassword'
]);

//Call Kanvas Functions

在DI上设置令牌

use Kanvas\Sdk\Auth;
use Kanvas\Sdk\Kanvas;
Kanvas::setApiKey($appApiKey);
Kanvas::setAuthToken($request['token']);

//Call Kanvas Functions

使用资源

每个Kanvas SDK资源的工作方式相同。它们都具有CRUD能力,其中一些还具有可以按静态函数访问的自定义函数。此外,以下是资源CRUD操作的工作方式:

创建

use Kanvas\Sdk\Users;

Users::create([
    'firstname'=>'testSDK',
    'lastname'=> 'testSDK',
    'displayname'=> 'sdktester',
    'password'=> 'nosenose',
    'default_company'=> 'example sdk',
    'email'=> 'examplesd5k@gmail.com',
    'verify_password'=> 'nosenose'
    ]);

更新

Users::update('id',[
    'firstname'=>'testSDK',
    'lastname'=> 'testSDK',
    ]);

删除

Users::delete('id');

列出

Users::all([], []);

检索

Users::retrieve('id', [], ['relationships'=>['roles']]);

CRUD操作上的自定义查询

除了每个资源CRUD操作的常规功能外,还可以使用其他参数来进行自定义查询。一个示例可以在检索操作示例中看到。

目前我们只支持Phalcon类型的数据库表查询。我们使用

  • 条件
  • 限制
  • 排序

Phalcon Passthrough

要使用Phalcon Passthrough,首先必须在项目的控制器中将其作为trait调用。控制器本身可以命名为任何你想要的名称,但默认名称是ApiController。此外,控制器应扩展Baka Http的BaseController

use Baka\Http\Api\BaseController as BakaBaseController;
use Kanvas\Sdk\Passthroughs\PhalconPassthrough;
use Phalcon\Http\Response;

class ApiController extends BakaBaseController
{
    use PhalconPassthrough;
}

该trait本身有一个名为transporter的函数,该函数负责向Kanvas API发送请求。必须创建两个函数;一个用于私有路由,另一个用于公共路由。它们可以是以下内容:

use PhalconPassthrough;

public function publicTransporter(): Phalcon\Http\Response
{
    return $this->transporter();
}
public function privateTransporter(): Phalcon\Http\Response
{
    return $this->transporter();
}

这两个函数都应返回一个Phalcon响应。

Passthrough路由设置

设置Passthrough路由有两种选择。第一种选择是在你的路由设置中直接调用PublicRoutes.php(包含默认的Kanvas公共路由)和PrivateRoutes.php(包含默认的Kanvas私有路由)。

use Kanvas\Sdk\Routes\PrivateRoutes;
use Kanvas\Sdk\Routes\PublicRoutes;

第二种选择需要创建两个文件(一个用于公共路由,一个用于私有路由),这些文件返回所需的Kanvas路由作为数组。这些文件应该是这样的:

use Baka\Router\Route;

return [
    Route::crud('/users')->controller('ApiController')->action('privateTransporter')->notVia('post'),
    Route::crud('/companies')->controller('ApiController')->action('privateTransporter'),
    Route::crud('/roles')->controller('ApiController')->action('privateTransporter'),
    Route::crud('/locales')->controller('ApiController')->action('privateTransporter'),
    Route::crud('/currencies')->controller('ApiController')->action('privateTransporter'),
    Route::crud('/apps')->controller('ApiController')->action('privateTransporter')
    ]

这些文件必须返回数组,每个路由都应是一个Baka Router Route。

之后,无论您选择哪个选项,都应该使用 RouteConfigurator,它有两个功能,用于合并您自己的路由和 Kanvas 的路由。

use Kanvas\Sdk\Routes\RouteConfigurator;

$publicRoutes = RouteConfigurator::mergePublicRoutes($publicRoutes, appPath('api/routes/publicRoutes.php'));
$privateRoutes = RouteConfigurator::mergePrivateRoutes($privateRoutes, appPath('api/routes/privateRoutes.php'));

mergePublicRoutes 将 Kanvas 的公共路由与您自己的公共路由合并。它还会接收您定义的自定义公共路由文件的路径。

mergePrivateRoutes 将 Kanvas 的私有路由与您自己的私有路由合并。它也会接收您定义的自定义私有路由文件的路径。

这两个函数都返回一个合并后的数组。

SDK 模型

此 SDK 还提供了根据 Kanvas 用户和公司进行搜索的功能。这两个模型将向 Kanvas API 发送请求,并像典型的 Phalcon 模型一样工作,具有 findfindFirst 函数。要使用它们,请按照以下步骤操作

use Kanvas\Sdk\Users;
use Kanvas\Sdk\Companies;

Users::find():

Users::findFirst([
    'conditions'=> 'email = ?0'
    'bind'=>[example]
]);

Companies::find();

Companies::findFirst([
    'conditions'=> 'email = ?0'
    'bind'=>[example]
]);

如前所述,这两个模型作为 Phalcon 模型工作,它们可以接受所有可传递给它们的参数。

注意:您必须验证身份才能使用这些模型,并且您的 API 密钥也必须设置。

变更日志

有关最近变更的更多信息,请参阅 CHANGELOG

测试

$ composer test

贡献

有关详细信息,请参阅 CONTRIBUTINGCODE_OF_CONDUCT

安全

如果您发现任何与安全相关的问题,请通过电子邮件发送给 max@mctekk.com,而不是使用问题跟踪器。

鸣谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件