国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

基于Laravel的API服務(wù)端架構(gòu)代碼

BDEEFE / 2544人閱讀

摘要:服務(wù)端架構(gòu)代碼源碼部署說明現(xiàn)有基于框架開發(fā),本次介紹也針對(duì)。如接口名,對(duì)應(yīng)的類文件及類名為接口命名規(guī)范命名字母按功能或模塊從大到小劃分,依次編寫如后臺(tái)用戶修改密碼字母最后單詞為操作。

API服務(wù)端架構(gòu)代碼 源碼

http://flc.ren/2016/08/549.html
https://github.com/flc1125/Ap...

部署說明
現(xiàn)有API基于laravel框架開發(fā),本次介紹也針對(duì)laravel。可根據(jù)文檔自行調(diào)整,以適用其他框架下使用
數(shù)據(jù)庫(kù)相關(guān)

執(zhí)行如下SQL語(yǔ)句

CREATE TABLE `prefix_apps` (
  `id` INT(10) NOT NULL AUTO_INCREMENT COMMENT "自增長(zhǎng)",
  `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 "生效狀態(tài)",
  `created_at` INT(10) NOT NULL DEFAULT "0" COMMENT "創(chuàng)建時(shí)間",
  `updated_at` INT(10) NOT NULL DEFAULT "0" COMMENT "更新時(shí)間",
  PRIMARY KEY (`id`),
  UNIQUE KEY `app_id` (`app_id`),
  KEY `status` (`status`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT="應(yīng)用表";
目錄相關(guān)
標(biāo)題 路徑
API核心目錄 app/Services/ApiServer/
API接口目錄 app/Services/ApiServer/Response/
apps數(shù)據(jù)庫(kù)模型 app/Models/App.php
路由配置 app/Http/routes.php
API入口控制器 app/Http/Controllers/Api/RouterController.php
API文檔及開發(fā)規(guī)范 API調(diào)用協(xié)議 請(qǐng)求地址及請(qǐng)求方式
請(qǐng)求地址:/api/router;

請(qǐng)求方式:POST/GET

公共參數(shù)
參數(shù)名 類型 是否必須 描述
app_id string 應(yīng)用ID
method string 接口名稱
format string 回調(diào)格式,默認(rèn):json(目前僅支持)
sign_method string 簽名類型,默認(rèn):md5(目前僅支持)
nonce string 隨機(jī)字符串,長(zhǎng)度1-32位任意字符
sign string 簽名字符串,參考簽名規(guī)則
業(yè)務(wù)參數(shù)
API調(diào)用除了必須包含公共參數(shù)外,如果API本身有業(yè)務(wù)級(jí)的參數(shù)也必須傳入,每個(gè)API的業(yè)務(wù)級(jí)參數(shù)請(qǐng)考API文檔說明。
簽名規(guī)則

對(duì)所有API請(qǐng)求參數(shù)(包括公共參數(shù)和請(qǐng)求參數(shù),但除去sign參數(shù)),根據(jù)參數(shù)名稱的ASCII碼表的順序排序。如:foo=1, bar=2, foo_bar=3, foobar=4排序后的順序是bar=2, foo=1, foo_bar=3, foobar=4

將排序好的參數(shù)名和參數(shù)值拼裝在一起,根據(jù)上面的示例得到的結(jié)果為:bar2foo1foo_bar3foobar4。

把拼裝好的字符串采用utf-8編碼,使用簽名算法對(duì)編碼后的字節(jié)流進(jìn)行摘要。如果使用MD5算法,則需要在拼裝的字符串前后加上app的secret后,再進(jìn)行摘要,如:md5(secret+bar2foo1foo_bar3foobar4+secret)

將摘要得到的字節(jié)結(jié)果使用大寫表示

返回結(jié)果
// 成功
{
    "status": true,
    "code": "200",
    "msg": "成功",
    "data": {
        "time": "2016-08-02 12:07:09"
    }
}

// 失敗
{
    "status": false,
    "code": "1001",
    "msg": "[app_id]缺失"
}
API開發(fā)規(guī)范 API接口命名規(guī)范(method)

接口名稱統(tǒng)一小寫字母

多單詞用.隔開

對(duì)應(yīng)的類文件(目錄:app/Services/ApiServer/Response/);以接口名去.,再首字母大寫作為類名及文件名。如接口名:user.add,對(duì)應(yīng)的類文件及類名為:UserAdd

接口命名規(guī)范

命名字母按功能或模塊從大到小劃分,依次編寫;如后臺(tái)用戶修改密碼:"admin.user.password.update"

字母最后單詞為操作。查詢:get;新增:add;更新:update;刪除:delete;上傳:upload;等

錯(cuò)誤碼
錯(cuò)誤碼配置:app/Services/ApiServer/Error.php

命名規(guī)范:

類型 長(zhǎng)度 說明
系統(tǒng)碼 3 http狀態(tài)碼
公共錯(cuò)誤碼 4 公共參數(shù)錯(cuò)誤相關(guān)的錯(cuò)誤碼
業(yè)務(wù)錯(cuò)誤碼 6+ 2位業(yè)務(wù)碼+4位錯(cuò)誤碼,不足補(bǔ)位

現(xiàn)有錯(cuò)誤碼:

錯(cuò)誤碼 錯(cuò)誤內(nèi)容
200 成功
400 未知錯(cuò)誤
401 無此權(quán)限
500 服務(wù)器異常
1001 [app_id]缺失
1002 [app_id]不存在或無權(quán)限
1003 [method]缺失
1004 [format]錯(cuò)誤
1005 [sign_method]錯(cuò)誤
1006 [sign]缺失
1007 [sign]簽名錯(cuò)誤
1008 [method]方法不存在
1009 run方法不存在,請(qǐng)聯(lián)系管理員
1010 [nonce]缺失
1011 [nonce]必須為字符串
1012 [nonce]長(zhǎng)度必須為1-32位
API DEMO 示例

文件路徑:app/Services/ApiServer/Response/Demo.php

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/21833.html

相關(guān)文章

  • PHP / Laravel API 開發(fā)推薦閱讀清單

    showImg(https://segmentfault.com/img/bV6aHV?w=1280&h=800); 社區(qū)優(yōu)秀文章 Laravel 5.5+passport 放棄 dingo 開發(fā) API 實(shí)戰(zhàn),讓 API 開發(fā)更省心 - 自造車輪。 API 文檔神器 Swagger 介紹及在 PHP 項(xiàng)目中使用 - API 文檔撰寫方案 推薦 Laravel API 項(xiàng)目必須使用的 8 個(gè)...

    shmily 評(píng)論0 收藏0
  • PHP相關(guān)

    摘要:的機(jī)器學(xué)習(xí)庫(kù)的機(jī)器學(xué)習(xí)庫(kù),包括算法交叉驗(yàn)證神經(jīng)網(wǎng)絡(luò)等內(nèi)容。在即將到來的大會(huì)上,她將和大家分享在機(jī)器學(xué)習(xí)領(lǐng)域的全新可能。入門總結(jié)入門相關(guān),如安裝配置基本使用等。 基于 Swoole 開發(fā) PHP 擴(kuò)展 Swoole-1.9.7 增加了一個(gè)新特性,可以基于 Swoole 使用 C++ 語(yǔ)言開發(fā)擴(kuò)展模塊,在擴(kuò)展模塊中可以注冊(cè) PHP 內(nèi)置函數(shù)和類。現(xiàn)在可以基于 Swoole 來編寫 PHP ...

    lewinlee 評(píng)論0 收藏0
  • Laravel-Vue-SSR-SPA 服務(wù)渲染/單頁(yè)面渲染實(shí)現(xiàn)骨架

    摘要:提供服務(wù)端渲染單頁(yè)面渲染實(shí)現(xiàn)骨架同時(shí)集成打包構(gòu)建文件名實(shí)現(xiàn)內(nèi)置等套件提供端渲染方案前后端分離單頁(yè)面方案前后端分離單頁(yè)面方案等三種常見方案項(xiàng)目地址歡迎項(xiàng)目需求基于和提供的強(qiáng)大的功能組合并根據(jù)已有項(xiàng)目實(shí)踐經(jīng)驗(yàn)提供完整的集成方案幫助快速 Laravel-Vue-SSR-SPA 提供服務(wù)端渲染/單頁(yè)面渲染實(shí)現(xiàn)骨架, 同時(shí)集成webpack打包構(gòu)建 MD5文件名/gzip 實(shí)現(xiàn), 內(nèi)置 vue-...

    zr_hebo 評(píng)論0 收藏0
  • Laravel-Vue-SSR-SPA 服務(wù)渲染/單頁(yè)面渲染實(shí)現(xiàn)骨架

    摘要:提供服務(wù)端渲染單頁(yè)面渲染實(shí)現(xiàn)骨架同時(shí)集成打包構(gòu)建文件名實(shí)現(xiàn)內(nèi)置等套件提供端渲染方案前后端分離單頁(yè)面方案前后端分離單頁(yè)面方案等三種常見方案項(xiàng)目地址歡迎項(xiàng)目需求基于和提供的強(qiáng)大的功能組合并根據(jù)已有項(xiàng)目實(shí)踐經(jīng)驗(yàn)提供完整的集成方案幫助快速 Laravel-Vue-SSR-SPA 提供服務(wù)端渲染/單頁(yè)面渲染實(shí)現(xiàn)骨架, 同時(shí)集成webpack打包構(gòu)建 MD5文件名/gzip 實(shí)現(xiàn), 內(nèi)置 vue-...

    U2FsdGVkX1x 評(píng)論0 收藏0
  • Laravel 程序架構(gòu)設(shè)計(jì)思路:使用動(dòng)作類

    摘要:一個(gè)動(dòng)作類,應(yīng)該有一個(gè)能夠說明其功能的名字,比如等。如果需要對(duì)我們的動(dòng)作類實(shí)現(xiàn)某種適配器模式,這是非常方便的。使用單動(dòng)作類的好處小巧而單一的邏輯域能夠防止代碼重復(fù)并提高代碼的可重用性,保持穩(wěn)定。易于針對(duì)各種場(chǎng)景進(jìn)行獨(dú)立測(cè)試。 showImg(https://segmentfault.com/img/remote/1460000015208092); 當(dāng)我們談?wù)摰綉?yīng)用程序的架構(gòu)的時(shí)候,經(jīng)...

    Caicloud 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<