PHPackages                             quansitech/qscmf-cross-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. quansitech/qscmf-cross-api

Abandoned → [quansitech/qscmf-api](/?search=quansitech%2Fqscmf-api)ArchivedLibrary[API Development](/categories/api)

quansitech/qscmf-cross-api
==========================

qscmf library cross api

v2.2.0(3y ago)0132MITPHPPHP &gt;=7.2

Since Jan 5Pushed 3y ago1 watchersCompare

[ Source](https://github.com/quansitech/qscmf-cross-api)[ Packagist](https://packagist.org/packages/quansitech/qscmf-cross-api)[ RSS](/packages/quansitech-qscmf-cross-api/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (12)Used By (0)

qscmf-cross-api
===============

[](#qscmf-cross-api)

用于管理其他系统访问的接口，类restful的接口规范（接口命名方面不完全遵守）

```
随着业务的变更、系统的迭代，不同系统间的数据可能需要打通
可以使用此扩展包来记录系统接口的使用情况，更好的维护与开发

情景举例：
存在系统A，系统B，系统C
三个系统均有各自管理员用户的权限体系。

现需要在系统A提供的入口统一登录，且统一管理三个系统的用户权限，则需要系统B、系统C提供相应接口来维护权限相关数据。

存在系统D，且其部分用户与系统B用户相关联，则需要系统B的接口提供所需服务。

可以在系统B中安装此扩展包，分别注册系统A、系统D可以访问的接口；
在系统C中安装此扩展包，注册系统A可以访问的接口

```

安装
--

[](#安装)

```
composer require quansitech/qscmf-cross-api

```

v2升级操作
------

[](#v2升级操作)

```
v2版本不需要ip字段，需要自行执行数据迁移进行删除

```

```
public function up()
{
    //
    if (Schema::hasColumn(\QscmfCrossApi\RegisterMethod::getTableName(), 'ip'))
    {
        Schema::table(\QscmfCrossApi\RegisterMethod::getTableName(), function (Blueprint $table) {
            $table->dropColumn('ip');
        });
    }

}

public function down()
{
    //
    Schema::table(\QscmfCrossApi\RegisterMethod::getTableName(), function (Blueprint $table) {
        $table->string('ip', 20)->after('sign');
    });
}
```

用法
--

[](#用法)

#### 使用数据迁移管理接口权限

[](#使用数据迁移管理接口权限)

```
public function up()
{
    // 添加接口
    // $sign 使用此服务的系统标识
    // $name 使用此服务的系统名称（第一次新增时必填）
    $register = new \QscmfCrossApi\RegisterMethod('library_local','本地');

    // 接口路由信息
    // $module_name, $controller_name, $action_name
    $register->addMethod('IntranetApi', 'Index', 'gets');
    $register->addMethod('IntranetApi', 'Index', 'update');
    $register->register();

}
```

```
public function down()
{
    // 移除接口
    // $sign 使用此服务的系统标识
    $register = new \QscmfCrossApi\RegisterMethod('library_local');

    // 接口路由信息
    // $module_name, $controller_name, $action_name
    $register->delMethod('IntranetApi', 'Index', 'gets');
    $register->delMethod('IntranetApi', 'Index', 'update');
    $register->register();
}
```

#### 接口例子

[](#接口例子)

```
namespace IntranetApi\Controller;

class IndexController extends \QscmfCrossApi\RestController
{
    protected $_filter = [
        ['id', 'isExists', 'Order', 404]  //自动完成Order表记录是否存在检查，如果不存在返回404
    ];

    public function gets(){
        $this->checkRequired(I('get.'), ['id' => '订单号']);  //检查提交的参数是否有id，否则会返回订单号不存在的提示

        $id = I('get.id');

        $order = D('Order')->getOne($id);

        $this->response('获取成功', 1, $order); //返回订单的详细的json数据
    }

    public function create(){

    }

    public function update(){

    }

    public function delete(){

    }
}
```

#### 属性设置

[](#属性设置)

属性值在继承了RestController的类里进行设置

属性说明格式filter过滤请求，只有通过了才能进行业务数据的访问二维数组 \[\['id', 'isExists', 'Order', 404\], \['item\_id', 'isExists', 'Item', 404\]\]
目前仅支持isExists，检查数据库表有无对应的记录，没有则返回设置的http状态码#### restful规范的语义化请求

[](#restful规范的语义化请求)

1. get 表示获取信息 ，对应controller的gets方法
2. post 表示创建信息，对应controller的create方法
3. put 表示编辑信息, 对应controller的update方法
4. delete 表示删除信息，对应controller的delete方法

#### 验证请求

[](#验证请求)

接口必须验证通过才能访问

#### 版本控制

[](#版本控制)

通过在http请求头的accept里加入version=1.2之类的版本号来控制接口的请求路由

如get请求，在accept 的位置加入 version=1.2，那么就会匹配到controller的 gets\_v1\_2的方法

#### 内置方法

[](#内置方法)

方法名说明参数返回值response返回请求内容message 提示信息
status 类型标记
data 返回的具体内容
code http状态码，默认值 200
extra\_res\_data 额外需要返回的数据，默认为空数组返回json或者xml等格式的字符串（根据请求的资源类型而定）
{ 'info': 'message内容', 'status': 1, 'data': 'data的json格式内容', 'extra\_res\_data':'自定义返回内容'}checkRequired必填验证data 需要验证的数组
required\_list 必填的字段设置，有两种格式，直接举例说明： 1. \[ 'id', 'name'\] 表示id, name字段都是必填，如果没有填写，自动返回"id必填"这样的错误提示。 2. \[ 'title'=&gt; '文章标题', 'type' =&gt; '文章类型'\], 表示 title, type都是必填字段，后面的value值表示对应字段的中文描述，如没有传递type字段，会自动返回“文章类型必填”的错误提示，这样用户更容易理解错误信息。验证不通过，直接response错误信息，否则返回true#### 环境变量

[](#环境变量)

环境变量在.env文件中设置

设置值说明默认值QSCMF\_CROSS\_API\_MAINTENANCE关闭接口的请求

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~25 days

Recently: every ~36 days

Total

11

Last Release

1333d ago

Major Versions

v1.0.2 → v2.0.02022-04-20

### Community

Maintainers

![](https://www.gravatar.com/avatar/15a0610fee78753bdad92fd45c3506455c0fd45ae51924797b1841d260495a3f?d=identicon)[tiderjian](/maintainers/tiderjian)

![](https://www.gravatar.com/avatar/6c2b4bb10b346cb957c091d3273e3332276b5d09a29e255d387184f5dd4b5976?d=identicon)[xhiny](/maintainers/xhiny)

---

Top Contributors

[![Xhiny](https://avatars.githubusercontent.com/u/35066497?v=4)](https://github.com/Xhiny "Xhiny (15 commits)")

---

Tags

apiqscmf

### Embed Badge

![Health badge](/badges/quansitech-qscmf-cross-api/health.svg)

```
[![Health](https://phpackages.com/badges/quansitech-qscmf-cross-api/health.svg)](https://phpackages.com/packages/quansitech-qscmf-cross-api)
```

###  Alternatives

[m165437/laravel-blueprint-docs

API Blueprint Renderer for Laravel

22779.0k](/packages/m165437-laravel-blueprint-docs)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
