接口設(shè)計(jì)
把server
端當(dāng)做一個(gè)黑盒,它將如何與前端通訊?
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比秭歸網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式秭歸網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋秭歸地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。功能范圍
- B 端,用戶注冊(cè),作品管理,模板管理
- 編輯器,單個(gè)作品的內(nèi)容獲取,修改,預(yù)覽和發(fā)布
功能拆分
- 用戶信息相關(guān)
- 作品管理
- 模板管理
- 編輯器
- 工具類
用戶信息
- 獲取手機(jī)短信驗(yàn)證碼
- 登錄,注冊(cè)
- 獲取用戶信息
- 修改用戶信息
作品管理
- 創(chuàng)建空白作品
- 復(fù)制作品(一個(gè)模板也是一個(gè)作品)
- 刪除作品
- 恢復(fù)作品
- 轉(zhuǎn)贈(zèng)作品
- 我的作品列表(搜索,分頁(yè))
- 我的回收站列表(搜索,分頁(yè))
模板管理
- 首頁(yè)推薦模板列表(搜索,分頁(yè)) ----不需要登錄校驗(yàn)
- 獲取單個(gè)模板信息 —不需要登錄校驗(yàn)
- 我的模板列表(搜索,分頁(yè))
編輯器
設(shè)計(jì)時(shí)分開(kāi),但編寫(xiě)代碼的時(shí)候會(huì)和作品管理寫(xiě)在一起,因?yàn)槎际亲髌废嚓P(guān)的。
- 查詢單個(gè)作品信息
- 保存作品
- 預(yù)覽作品
- 發(fā)布作品
- 發(fā)布作品為一個(gè)模板
渠道
工具類
統(tǒng)一的輸出格式
{errno:0,// 錯(cuò)誤碼,無(wú)錯(cuò)誤則返回 0data:{},// 數(shù)據(jù)內(nèi)容message:'xxx' // 消息內(nèi)容
}
數(shù)據(jù)庫(kù)設(shè)計(jì)
需要存儲(chǔ)的數(shù)據(jù)
- 用戶
- 項(xiàng)目/模板(包含項(xiàng)目?jī)?nèi)容,組件信息)
- 渠道
數(shù)據(jù)之間的關(guān)系
數(shù)據(jù)表設(shè)計(jì)
注意:使用sequelize
和mongoose
的時(shí)候,會(huì)自動(dòng)創(chuàng)建id
,createdAt
和updatedAt
,無(wú)需自己手動(dòng)創(chuàng)建 。
用戶
作品/模板
渠道
作品內(nèi)容
{// 頁(yè)面的組件列表components: [Object],// 頁(yè)面的屬性 ,如頁(yè)面背景圖片props: Object,// 配置信息, 如微信分享配置setting: Object
}
書(shū)寫(xiě)代碼
sequelize Model
以及關(guān)聯(lián)關(guān)系mongoose Scheme
和Model
整體架構(gòu)設(shè)計(jì)
基礎(chǔ)功能設(shè)計(jì)
短信驗(yàn)證過(guò)程
初次獲取驗(yàn)證碼
- 前端發(fā)送請(qǐng)求
request
- 輸入手機(jī)號(hào),請(qǐng)求短信驗(yàn)證碼 - 服務(wù)端
server
- 生成 4 位隨機(jī)數(shù),緩存2 min
- 服務(wù)端響應(yīng)
res
* 發(fā)短信驗(yàn)證碼* 返回發(fā)送短信成功給前端{ errno:0 }
再次獲取驗(yàn)證碼
- 前端發(fā)送請(qǐng)求
request
- 輸入手機(jī)號(hào),請(qǐng)求短信驗(yàn)證碼 - 服務(wù)端
server
- 檢查是否有緩存,沒(méi)有就生成一個(gè)驗(yàn)證碼,緩存2 min
- 服務(wù)端響應(yīng)
res
* 有緩存,返回錯(cuò)誤,不可以頻繁獲取* 沒(méi)有緩存,發(fā)送短信,并返回成功信息給前端{ errno:0 }
登錄驗(yàn)證
前端發(fā)送請(qǐng)求request
- 輸入手機(jī)號(hào),短信驗(yàn)證碼,請(qǐng)求登錄驗(yàn)證
服務(wù)端server
- 與緩存中的信息進(jìn)行匹配
服務(wù)端響應(yīng)res
* 匹配成功,登錄成功,返回 token* 匹配失敗(驗(yàn)證碼錯(cuò)誤或過(guò)期),登錄失敗### 其他細(xì)節(jié)問(wèn)題
緩存,禁止頻繁發(fā)送* 短信服務(wù)的提示和報(bào)警* 短信發(fā)送失敗,不會(huì)進(jìn)行緩存,用戶可以立刻再次請(qǐng)求驗(yàn)證碼* 如果server
緩存失敗,允許用戶立刻重復(fù)獲取驗(yàn)證碼* 短信服務(wù)掛掉,報(bào)警用戶信息接口
- 獲取手機(jī)短信驗(yàn)證碼
- 登錄(注冊(cè))
- 獲取用戶信息
- 修改用戶信息
代碼演示
代碼不貼了,只記錄下文件位置,到時(shí)候看的時(shí)候代碼倉(cāng)庫(kù)里找就行。
- routes/users.js* controller/users/* service/users/* **test/apis/users.js**作品管理接口
- 創(chuàng)建空白作品
- 復(fù)制作品(通過(guò)模板創(chuàng)建)
- 刪除作品
- 恢復(fù)作品
- 轉(zhuǎn)贈(zèng)作品
- 我的作品列表(搜索,分頁(yè))
- 我的回收站列表(搜索,分頁(yè))
- 查詢單個(gè)作品信息
- 保存作品
代碼演示
- routes/works.js
- controller/works/
- service/works/
- test/apis/works.js
模板接口
- 首頁(yè)推薦模板列表(搜索,分頁(yè)) - 不需要登錄校驗(yàn)
- 獲取單個(gè)模板信息 - 不需要登錄校驗(yàn)
- 我的模板列表(搜索,分頁(yè))
代碼演示
- routes/templates.js
- controller/works/findTemplate
- service/works/templates
- test/apis/templates.js
發(fā)布相關(guān)的功能
發(fā)布,即獲取一個(gè)url
,能外網(wǎng)訪問(wèn)該作品。
功能范圍
細(xì)節(jié)設(shè)計(jì)
- url 不能太長(zhǎng),因?yàn)橐啥S碼。
- 作品發(fā)布之后,重新編輯,保存,未發(fā)布的時(shí)候線上不可以生效。
- 再次發(fā)布時(shí),
url
不能變,渠道號(hào)也不能變。 - 用戶訪問(wèn)
url
時(shí)必須帶有渠道號(hào),否則無(wú)法分渠道統(tǒng)計(jì)。 - 注意數(shù)據(jù)保密,防爬。
- 發(fā)布時(shí)進(jìn)行內(nèi)容安全檢查。
代碼演示
- routes/works.js
- controller/works/publishWorks.js
- service/works.js
- cache/works/publish.js
- test/apis/work.js
渠道接口
代碼演示
- routes/channel.js
- controller/channel/
- service/channel.js
- cache/works/publish.js
- test/apis/channel.js
PS: 從本節(jié)開(kāi)始就是大量的業(yè)務(wù)代碼的書(shū)寫(xiě),就不記錄文章里了,需要的時(shí)候直接去看對(duì)應(yīng)的代碼就就行了。
最后
最近還整理一份JavaScript與ES的筆記,一共25個(gè)重要的知識(shí)點(diǎn),對(duì)每個(gè)知識(shí)點(diǎn)都進(jìn)行了講解和分析。能幫你快速掌握J(rèn)avaScript與ES的相關(guān)知識(shí),提升工作效率。
有需要的小伙伴,可以點(diǎn)擊下方卡片領(lǐng)取,無(wú)償分享
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)站欄目:【架構(gòu)師(第五十一篇)】服務(wù)端開(kāi)發(fā)之技術(shù)方案設(shè)計(jì)-創(chuàng)新互聯(lián)
網(wǎng)站URL:
http://weahome.cn/article/psejs.html