PHPackages                             lmh/api-module - 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. lmh/api-module

ActiveProject[API Development](/categories/api)

lmh/api-module
==============

an api module

1.3.2(8y ago)185MTIPHPPHP &gt;5.3.0

Since Aug 19Pushed 8y ago1 watchersCompare

[ Source](https://github.com/lmhfq/apiModule)[ Packagist](https://packagist.org/packages/lmh/api-module)[ RSS](/packages/lmh-api-module/feed)WikiDiscussions master Synced 4w ago

READMEChangelog (8)Dependencies (1)Versions (10)Used By (0)

apiModule
=========

[](#apimodule)

```
   composer require lmh/api-module
```

```
    "require": {
        "lmh/api-module":  "*"
    }
```

执行如下SQL语句

部署说明
----

[](#部署说明)

> 可根据文档自行调整，以适用其他框架下使用 项目用到了缓存可以改成其框架下的缓存也可以直接使用该项目的缓存组件进行修改redis mysql等

```
CREATE TABLE `prefix_apps` (
  `id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '自增长',
  `app_id` VARCHAR(60) NOT NULL COMMENT 'appid',
  `app_secret` VARCHAR(100) NOT NULL COMMENT '密钥',
  `app_name` VARCHAR(200) NOT NULL COMMENT 'app名称',
  `app_desc` TEXT COMMENT '描述',
  `status` TINYINT(2) DEFAULT '0' COMMENT '生效状态',
  `created_at` INT(10) NOT NULL DEFAULT '0' COMMENT '创建时间',
  `updated_at` INT(10) NOT NULL DEFAULT '0' COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `app_id` (`app_id`),
  KEY `status` (`status`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='应用表';
```

#### 请求地址及请求方式

[](#请求地址及请求方式)

> 请求地址：`/api/test`;
>
> 请求方式：`POST`

#### 公共参数

[](#公共参数)

参数名类型是否必须描述app\_idstring是应用IDmethodstring是接口名称formatstring否回调格式，默认：json（目前仅支持json）sign\_methodstring否签名类型，默认：md5（目前仅支持 md5 ,rsa）noncestring是随机字符串，长度1-32位任意字符signstring是签名字符串，参考[签名规则](#%E7%AD%BE%E5%90%8D%E8%A7%84%E5%88%99)#### 业务参数

[](#业务参数)

> API调用除了必须包含公共参数外，如果API本身有业务级的参数也必须传入，每个API的业务级参数请考API文档说明。

#### 签名规则

[](#签名规则)

- 对所有API请求参数（包括公共参数和请求参数，但除去`sign`参数），根据参数名称的ASCII码表的顺序排序。如：`foo=1, bar=2, foo_bar=3, foobar=4`排序后的顺序是`bar=2, foo=1, foo_bar=3, foobar=4`。
- 将排序好的参数名和参数值拼装在一起，根据上面的示例得到的结果为：bar=2&amp;foo=1&amp;foo\_ba=3&amp;foobar=4。
- 把拼装好的字符串采用utf-8编码，使用签名算法对编码后的字节流进行摘要。如果使用`MD5`算法，则需要在拼装的字符串后加上app的`secret`后，再进行摘要，如：md5(bar=2&amp;foo=1&amp;foo\_bar=3&amp;foobar=4+secret)
- 将摘要得到的字节结果使用大写表示

#### 返回结果

[](#返回结果)

```
// 成功
{
    "status": true,
    "code": "200",
    "msg": "成功",
    "data": {
        "time": "2016-08-02 12:07:09"
    }
}

// 失败
{
    "status": false,
    "code": "1001",
    "msg": "[app_id]缺失"
}
```

#### API接口命名规范（method）

[](#api接口命名规范method)

接口命名规范 - 命名字母按功能或模块从大到小划分，依次编写；如后台用户修改密码：'admin.user.password.update' - 字母最后单词为操作。查询:`get`;新增:`add`;更新:`update`;删除:`delete`;上传:`upload`;等 - 第一位是分组 案例中使用了open分组 open.xx.xx

#### API DEMO 示例

[](#api-demo-示例)

```
