hiqdev/yii2-hiart

API ActiveRecord

安装数量: 44,032

依赖关系: 5

建议者: 1

安全: 0

星星: 58

关注者: 15

分支: 14

开放问题: 3

类型:yii2-extension

0.4.0 2019-02-20 13:12 UTC

This package is auto-updated.

Last update: 2024-09-14 11:43:25 UTC


README

API ActiveRecord

Latest Stable Version Total Downloads Build Status Scrutinizer Code Coverage Scrutinizer Code Quality Dependency Status

这个Yii2扩展提供了一种实现ActiveRecord的方法,允许以与正常Yii2 DB ActiveRecord相同的方式访问远程/网络API。

安装

安装此yii2-extension的首选方法是通过composer

composer require "hiqdev/yii2-hiart"

但如果您更喜欢Guzzle传输,请使用yii2-hiart-guzzle

composer require "hiqdev/yii2-hiart-guzzle"

配置

要使用此扩展,请在您的应用程序配置中配置hiart组件

    'components' => [
        'hiart' => [
            'class' => \hiqdev\hiart\rest\Connection::class,
            'requestClass' => \hiqdev\hiart\auto\Request::class,
            'baseUri' => 'https://site.com/api/v3/',
        ],
    ],

注意三个主要选项

  • class指定了实际实现要访问的API的类,在这种情况下为REST
  • requestClass指定了要使用的传输实现,在这种情况下为auto
  • baseUri指定了API的起始点

传输方式

可用的传输方式包括

您可以实现自己的传输。您只需要创建两个类:RequestResponse,这并不困难,可以查看可用的实现。传输甚至可以不是基于HTTP的。

查询构建器

查询构建器是实际实现API的东西。

我们正在开发针对以下API的QueryBuilder

您可以实现自己的API。基本上,您只需要创建一个具有以下方法的QueryBuilder类:

  • buildMethod(Query $query)
  • buildHeaders(Query $query)
  • buildUri(Query $query)
  • buildQueryParams(Query $query)
  • buildBody(Query $query)
  • buildFormParams(Query $query)

请查看可用的实现,并在GitHub上使用问题提问。

使用方法

定义您的模型

class User extends \hiqdev\hiart\ActiveRecord
{
    public function rules()
    {
        return [
            ['id', 'integer', 'min' => 1],
            ['login', 'string', 'min' => 2, 'max' => 32],
        ];
    }
}

请注意,您使用的是通用的hiqdev\hiart\ActiveRecord类,而不是特定于某个API的类。API在连接选项中指定,并且当您更改API时,您不需要更改模型类。

然后,您只需像使用DB ActiveRecord模型一样使用您的模型即可。

$user = new User();
$user->login = 'sol';

$user->save();

$admins = User::find()->where(['type' => User::ADMIN_TYPE])->all();

基本上,如果您的API提供了这些功能,则Yii2 ActiveRecord的所有功能都可以使用。

许可协议

本项目依据BSD-3-Clause许可协议发布。查看许可协议。更多信息请参阅这里

版权所有 © 2015-2018,HiQDev(http://hiqdev.com/

致谢