2017 © Pedro Peláez
 

project api-module

an api module

image

lmh/api-module

an api module

  • Friday, June 29, 2018
  • by lmh
  • Repository
  • 1 Watchers
  • 1 Stars
  • 46 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 10 Versions
  • 2 % Grown

The README.md

apiModule

``` json composer require lmh/api-module, (*1)


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

执行如下SQL语句, (*2)

部署说明

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

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;, (*4)

请求方式:POST, (*5)

公共参数

参数名 类型 是否必须 描述
app_id string 应用ID
method string 接口名称
format string 回调格式,默认:json(目前仅支持json)
sign_method string 签名类型,默认:md5(目前仅支持 md5 ,rsa)
nonce string 随机字符串,长度1-32位任意字符
sign string 签名字符串,参考签名规则

业务参数

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

签名规则

  • 对所有API请求参数(包括公共参数和请求参数,但除去sign参数),根据参数名称的ASCII码表的顺序排序。如:foo=1, bar=2, foo_bar=3, foobar=4排序后的顺序是bar=2, foo=1, foo_bar=3, foobar=4
  • 将排序好的参数名和参数值拼装在一起,根据上面的示例得到的结果为:bar=2&foo=1&foo_ba=3&foobar=4。
  • 把拼装好的字符串采用utf-8编码,使用签名算法对编码后的字节流进行摘要。如果使用MD5算法,则需要在拼装的字符串后加上app的secret后,再进行摘要,如:md5(bar=2&foo=1&foo_bar=3&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)

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

API DEMO 示例

``` php <?php namespace Test; use ApiResponse\ApiResponse; use ApiResponse\Application; include_once 'vendor/autoload.php'; class demo { public function index() { $server = new ApiResponse(); $server->setParams(); $params = $server->getParams(); $app = Application::getInstance($params['app_id'])->info(); //查询 appid校验 if (!$app) { //查询数据库 $appInfo = ['app_id' => '88888888888888888', 'app_secret' => 'dasfasfafa41545458']; $app = Application::getInstance($params['app_id'])->set($appInfo); } if (!$app) { $response = $server->response(['status' => false, 'code' => '401']); } else { $server->setAppSecret($app['app_secret']); $server->groupNameSpace = NAMESPACE; $response = $server->run(); } die($response); } } (new demo())->index();, (*8)

```, (*9)

The Versions

29/06 2018

dev-master

9999999-dev

an api module

  Sources   Download

MTI

The Requires

 

by LiMinghua

api module

29/06 2018

1.3.2

1.3.2.0

an api module

  Sources   Download

MTI

The Requires

 

by LiMinghua

api module

24/11 2016

1.3.1

1.3.1.0

an api module

  Sources   Download

MTI

The Requires

 

by LiMinghua

api module

24/11 2016

1.3

1.3.0.0

an api module

  Sources   Download

MTI

The Requires

 

by LiMinghua

api module

11/10 2016

1.2.2

1.2.2.0

an api module

  Sources   Download

MTI

The Requires

 

by LiMinghua

api module

22/09 2016

1.2.1

1.2.1.0

an api module

  Sources   Download

MTI

The Requires

 

by LiMinghua

api module

21/09 2016

1.2

1.2.0.0

an api module

  Sources   Download

MTI

The Requires

 

by LiMinghua

api module

20/09 2016

1.1

1.1.0.0

an api module

  Sources   Download

MTI

The Requires

 

by LiMinghua

api module

19/08 2016

dev-develop

dev-develop

an api module

  Sources   Download

MTI

The Requires

 

by LiMinghua

19/08 2016

1.0

1.0.0.0

an api module

  Sources   Download

MTI

The Requires

 

by LiMinghua