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

資訊專欄INFORMATION COLUMN

強業(yè)務邏輯抽象API接口

ygyooo / 674人閱讀

摘要:組件接入類映射類動作類接入類主要做路由,限流,鑒權(quán)等接入放行性質(zhì)的工作映射類名稱到動作類的映射動作類表達一個接口的實際業(yè)務邏輯操作,權(quán)限,數(shù)據(jù)都在這里進行配置業(yè)務邏輯操作順序數(shù)據(jù)結(jié)構(gòu)與格式驗證,數(shù)據(jù)正確性驗證,如驗證碼,密碼等,數(shù)據(jù)存在性驗

組件

接入類

映射類

動作類

接入類

主要做路由,限流,鑒權(quán)等接入放行性質(zhì)的工作

class App:
    action_map = {}

    def dispatch(self, data):
        try:
            assert data["action"] in self.action_map, ErrorCode.sys_action_not_exist
            action = self.action_map[data["action"]]
            return {
                "code": 0,
                "msg": "",
                "data": action.run(data["params"])
            }
        except AssertionError as e:
            msg, code = e
            return {
                "code": code,
                "msg": msg,
                "data": None
            }
        except Exception:
            traceback.print_exc()
            msg, code = ErrorCode.sys_unknown
            return {
                "code": code,
                "msg": msg,
                "data": None
            }

映射類

名稱到動作類的映射

action_map = {
    "register": RegisterAction
}
動作類

表達一個接口的實際業(yè)務邏輯操作,權(quán)限,數(shù)據(jù)schema都在這里進行配置

class RegisterAction(Action):
    schema = Schema({
        "verify_code": And(str, len),
        "phone": And(str, len),
        "password": And(str, len)
    })
    auth = False

    def run(self, data):
        assert check_verify_code(data["verify_code"]), MyErrorCode.verify_code_wrong
        assert User.get(data["phone"]), MyErrorCode.already_register
        return {"token": "token"}
業(yè)務邏輯

操作順序

數(shù)據(jù)結(jié)構(gòu)與格式驗證,validate

數(shù)據(jù)正確性驗證,如驗證碼,密碼等,check

數(shù)據(jù)存在性驗證,exist

數(shù)據(jù)業(yè)務狀態(tài)驗證,status

數(shù)據(jù)業(yè)務更改操作并提交至數(shù)據(jù)庫,run

返回成功,return

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

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

相關(guān)文章

  • 基于shiro的自定義注解的擴展

    摘要:的自身注解的用法。所以自定義注解的作用很廣。但是在這里,我僅僅基于的來實現(xiàn)適用于它的自定義注解。其他的自定義的注解的編寫思路和這個也是類似的。 基于shiro的自定義注解的擴展 根據(jù)我的上一篇文章,權(quán)限設(shè)計的雜談中,涉及到了有關(guān)于前后端分離中,頁面和api接口斷開表與表層面的關(guān)聯(lián),另辟蹊徑從其他角度找到方式進行關(guān)聯(lián)。這里我們主要采取了shiro的自定義注解的方案。本篇文章主要解決以下的...

    YuboonaZhang 評論0 收藏0
  • “樂高式松耦合”架構(gòu)實戰(zhàn)

    摘要:二樂高式松耦合架構(gòu)落地快速實現(xiàn)需求與需求實現(xiàn)越來越慢的矛盾如何解決最終白山的產(chǎn)品架構(gòu)聚焦在解耦上,方便平臺快速迭代,減少系統(tǒng)間依賴程度,打通無關(guān)聯(lián)項目,為運營互動提供高效支持,確保服務質(zhì)量。 作者:王康 白山聯(lián)合創(chuàng)始人兼產(chǎn)品副總裁。 王康先生主要負責產(chǎn)品的完善與升級、產(chǎn)品開發(fā)流程把控及進度協(xié)調(diào)、產(chǎn)品設(shè)計改進及定期優(yōu)化、產(chǎn)品全生命周期管理等工作。他帶領(lǐng)團隊實現(xiàn)白山首款產(chǎn)品CDN-X的多項...

    xiaochao 評論0 收藏0
  • “樂高式松耦合”架構(gòu)實戰(zhàn)

    摘要:二樂高式松耦合架構(gòu)落地快速實現(xiàn)需求與需求實現(xiàn)越來越慢的矛盾如何解決最終白山的產(chǎn)品架構(gòu)聚焦在解耦上,方便平臺快速迭代,減少系統(tǒng)間依賴程度,打通無關(guān)聯(lián)項目,為運營互動提供高效支持,確保服務質(zhì)量。 作者:王康 白山聯(lián)合創(chuàng)始人兼產(chǎn)品副總裁。 王康先生主要負責產(chǎn)品的完善與升級、產(chǎn)品開發(fā)流程把控及進度協(xié)調(diào)、產(chǎn)品設(shè)計改進及定期優(yōu)化、產(chǎn)品全生命周期管理等工作。他帶領(lǐng)團隊實現(xiàn)白山首款產(chǎn)品CDN-X的多項...

    Pikachu 評論0 收藏0
  • App后臺api開發(fā)前的準備

    摘要:負責從拉取數(shù)據(jù)源,把數(shù)據(jù)源分詞,建立索引搜索模塊工作流程如下模塊從中拉取數(shù)據(jù)模塊用經(jīng)過中文分詞后的數(shù)據(jù)建立索引客戶端向模塊發(fā)起搜索請求模塊查找索引中的數(shù)據(jù)模塊得到索引中符合要求的數(shù)據(jù)的等數(shù)據(jù)把數(shù)據(jù)返回給客戶端 (整理自《App后臺開發(fā)運維和架構(gòu)實踐》 作者:曾健生) 一、從業(yè)務邏輯中提煉API接口 此過程可分為六個階段: 業(yè)務邏輯思維導圖 功能——業(yè)務邏輯思維導圖 基本功能模塊關(guān)系 ...

    yzzz 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<