http://flc.ren/2016/08/549.html https://github.com/flc1125/Ap...
现有API基于laravel框架开发,本次介绍也针对laravel。可根据文档自行调整,以适用其他框架下使用
执行如下SQL语句
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/router;
请求方式:POST/GET
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。
将排序好的参数名和参数值拼装在一起,根据上面的示例得到的结果为:bar2foo1foo_bar3foobar4。
把拼装好的字符串采用utf-8编码,使用签名算法对编码后的字节流进行摘要。如果使用MD5算法,则需要在拼装的字符串前后加上app的secret后,再进行摘要,如:md5(secret+bar2foo1foo_bar3foobar4+secret)
将摘要得到的字节结果使用大写表示
接口名称统一小写字母
多单词用.隔开
对应的类文件(目录:app/Services/ApiServer/Response/);以接口名去.,再首字母大写作为类名及文件名。如接口名:user.add,对应的类文件及类名为:UserAdd
接口命名规范
命名字母按功能或模块从大到小划分,依次编写;如后台用户修改密码:'admin.user.password.update'
字母最后单词为操作。查询:get;新增:add;更新:update;删除:delete;上传:upload;等
错误码配置:app/Services/ApiServer/Error.php
命名规范:
类型 长度 说明 系统码 3 同http状态码 公共错误码 4 公共参数错误相关的错误码 业务错误码 6+ 2位业务码+4位错误码,不足补位现有错误码:
错误码 错误内容 200 成功 400 未知错误 401 无此权限 500 服务器异常 1001 [app_id]缺失 1002 [app_id]不存在或无权限 1003 [method]缺失 1004 [format]错误 1005 [sign_method]错误 1006 [sign]缺失 1007 [sign]签名错误 1008 [method]方法不存在 1009 run方法不存在,请联系管理员 1010 [nonce]缺失 1011 [nonce]必须为字符串 1012 [nonce]长度必须为1-32位文件路径:app/Services/ApiServer/Response/Demo.php
转:https://segmentfault.com/a/1190000006178269