http://flc.ren/2016/08/549.html
https://github.com/flc1125/Ap...php
現有API基於laravel框架開發,本次介紹也針對laravel。可根據文檔自行調整,以適用其餘框架下使用
執行以下SQL語句html
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核心目錄 | app/Services/ApiServer/ |
API接口目錄 | app/Services/ApiServer/Response/ |
apps數據庫模型 | app/Models/App.php |
路由配置 | app/Http/routes.php |
API入口控制器 | app/Http/Controllers/Api/RouterController.php |
請求地址:/api/router
;請求方式:
POST
/GET
laravel
參數名 | 類型 | 是否必須 | 描述 |
---|---|---|---|
app_id | string | 是 | 應用ID |
method | string | 是 | 接口名稱 |
format | string | 否 | 回調格式,默認:json(目前僅支持) |
sign_method | string | 否 | 簽名類型,默認:md5(目前僅支持) |
nonce | string | 是 | 隨機字符串,長度1-32位任意字符 |
sign | string | 是 | 簽名字符串,參考簽名規則 |
API調用除了必須包含公共參數外,若是API自己有業務級的參數也必須傳入,每一個API的業務級參數請考API文檔說明。
sign
參數),根據參數名稱的ASCII碼錶的順序排序。如:foo=1, bar=2, foo_bar=3, foobar=4
排序後的順序是bar=2, foo=1, foo_bar=3, foobar=4
。MD5
算法,則須要在拼裝的字符串先後加上app的secret
後,再進行摘要,如:md5(secret+bar2foo1foo_bar3foobar4+secret)// 成功 { "status": true, "code": "200", "msg": "成功", "data": { "time": "2016-08-02 12:07:09" } } // 失敗 { "status": false, "code": "1001", "msg": "[app_id]缺失" }
.
隔開app/Services/ApiServer/Response/
);以接口名去.
,再首字母大寫做爲類名及文件名。如接口名:user.add
,對應的類文件及類名爲:UserAdd
接口命名規範git
get
;新增:add
;更新:update
;刪除:delete
;上傳:upload
;等
錯誤碼配置:
app/Services/ApiServer/Error.php
命名規範:github
類型 | 長度 | 說明 |
---|---|---|
系統碼 | 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
sql