simialbi/yii2-rest-client
Composer 安装命令:
composer require simialbi/yii2-rest-client
包简介
REST client (AR-like model) for Yii Framework 2.0 (via yii2-http-client, extends ApexWire/yii2-restclient)
README 文档
README
This extension provides an interface to work with RESTful API via ActiveRecord-like model in Yii 2. It is based on ApexWire's yii2-restclient.
Resources
Installation
The preferred way to install this extension is through composer.
Either run
$ php composer.phar require --prefer-dist simialbi/yii2-rest-client
or add
"simialbi/yii2-rest-client": "*"
to the require section of your composer.json.
Configuration
To use this extension, configure restclient component in your application config:
'components' => [ 'rest' => [ 'class' => 'simialbi\yii2\rest\Connection', 'baseUrl' => 'https://api.site.com/', // 'auth' => function (simialbi\yii2\rest\Connection $db) { // return 'Bearer: <mytoken>'; // }, // 'auth' => 'Bearer: <mytoken>', // 'usePluralisation' => false, // 'useFilterKeyword' => false, // 'enableExceptions' => true, // 'itemsProperty' => 'items' ], ],
| Parameter | Default | Description |
|---|---|---|
baseUrl |
'' |
The location of the api. E.g. for http://api.site.com/v1/users the baseUrl would be http://api.site.com/v1/ (required) |
auth |
Either a Closure which returns a string or a string. The rest connection will be passed as parameter. |
|
usePluralisation |
true |
Whether to use plural version for lists (index action) or not (e.g. http://api.site.com/users instead of user) |
useFilterKeyword |
true |
Whether to use "filter" key word in url parameters when filtering (e.g. ?filter[name]=user instead of ?name=user |
enableExceptions |
false |
Whether the connection should throw an exception if response is not 200 or not |
itemsProperty |
If your items are wrapped inside a property (e.g. items), set it's name here |
|
requestConfig |
[] |
Client request configuration |
responseConfig |
[] |
Client response configuration |
updateMethod |
'put' |
The method to use for update operations. |
isTestMode |
false |
Whether we are in test mode or not (prevent execution) |
enableQueryCache |
false |
Whether to enable query caching |
queryCacheDuration |
3600 |
The default number of seconds that query results can remain valid in cache |
queryCache |
'cache' |
The cache object or the ID of the cache application component |
Usage
Define your Model
<?php namespace app\models; use simialbi\yii2\rest\ActiveRecord; /** * MyModel * * @property integer $id * @property string $name * @property string $description * * @property-read MyOtherModel $myOtherModel */ class MyModel extends ActiveRecord { /** * {@inheritdoc} */ public static function modelName() { return 'my-super-model-name'; } /** * {@inheritdoc} */ public static function primaryKey() { return ['id']; } } /** * Class MyOtherModel * * @property integer $id * @property integer $my_model_id * @property string $subject * * @property-read MyModel[] $myModels */ class MyOtherModel extends ActiveRecord { /** * {@inheritdoc} */ public static function primaryKey() { return ['id']; } }
It's important that you define the primary key by overriding primaryKey() method. Otherwise you'll get an exception.
If you do not override the modelName() method, it will guess it by class name (MyModel becomes my-model). It's used
to generate the URL together with simialbi\yii2\rest\Connection::$baseUrl.
The usage how to define the active record (rules, behaviors etc.) is the same like yii\db\ActiveRecord.
Important: Be sure to either define the properties of the object like in the example above (
@propertysyntax in phpdoc) or override theattributes()method to return the allowed attributes as array
The same about relations. Be sure to either define them via
@property-readphpdoc comment or override thegetRelationsmethod. If the related class has not the same namespace as the main class, be sure to use the fully qualified class name (e.g.@property-read \app\models\OtherModel[] $otherModels)
License
yii2-rest-client is released under MIT license. See bundled LICENSE for details.
Acknowledgments
simialbi/yii2-rest-client 适用场景与选型建议
simialbi/yii2-rest-client 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 39.03k 次下载、GitHub Stars 达 23, 最近一次更新时间为 2017 年 10 月 13 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「rest」 「client」 「Active Record」 「model」 「yii2」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 simialbi/yii2-rest-client 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 simialbi/yii2-rest-client 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 simialbi/yii2-rest-client 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Propel2 is an open-source Object-Relational Mapping (ORM) for PHP 5.5 and up.
A Symfony extension to get active class base on current bundle/controller/action
LDAP user provider bundle for Symfony 6.4
The helper class for Laravel applications to get active class base on current route for Laravel 11
Anax Database Active Record module for model classes.
Package
统计信息
- 总下载量: 39.03k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 23
- 点击次数: 12
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-10-13