hiqdev / yii2-hiart
API ActiveRecord
0.4.0
2019-02-20 13:12 UTC
Requires
- yiisoft/yii2: ~2.0.0
Requires (Dev)
- hiqdev/hidev-hiqdev: <2.0
- hiqdev/hidev-php: <2.0
- hiqdev/yii2-hiart-github: dev-master
- yiisoft/yii2: dev-master
README
API ActiveRecord
这个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的起始点
传输方式
可用的传输方式包括
- auto - 自动检测最佳支持的传输
- PHP streams,最通用的后备选项,包含在此包中
- cURL,包含在此包中
- Guzzle,由yii2-hiart-guzzle提供
- yii2-httpclient,由yii2-hiart-httpclient提供
您可以实现自己的传输。您只需要创建两个类:Request
和Response
,这并不困难,可以查看可用的实现。传输甚至可以不是基于HTTP的。
查询构建器
查询构建器是实际实现API的东西。
我们正在开发针对以下API的QueryBuilder
:
- 包含在此包中的基本REST API
- 由yii2-hiart-github提供的GitHub API
- 由hipanel-hiart提供的HiPanel API
您可以实现自己的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/)
致谢
- 本项目是从Yii2 Elasticsearch分支出来的。