资讯专栏INFORMATION COLUMN

强业务逻辑抽象API接口

ygyooo / 632人阅读

摘要:组件接入类映射类动作类接入类主要做路由,限流,鉴权等接入放行性质的工作映射类名称到动作类的映射动作类表达一个接口的实际业务逻辑操作,权限,数据都在这里进行配置业务逻辑操作顺序数据结构与格式验证,数据正确性验证,如验证码,密码等,数据存在性验

组件

接入类

映射类

动作类

接入类

主要做路由,限流,鉴权等接入放行性质的工作

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
}
动作类

表达一个接口的实际业务逻辑操作,权限,数据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"}
业务逻辑

操作顺序

数据结构与格式验证,validate

数据正确性验证,如验证码,密码等,check

数据存在性验证,exist

数据业务状态验证,status

数据业务更改操作并提交至数据库,run

返回成功,return

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42419.html

相关文章

  • 基于shiro的自定义注解的扩展

    摘要:的自身注解的用法。所以自定义注解的作用很广。但是在这里,我仅仅基于的来实现适用于它的自定义注解。其他的自定义的注解的编写思路和这个也是类似的。 基于shiro的自定义注解的扩展 根据我的上一篇文章,权限设计的杂谈中,涉及到了有关于前后端分离中,页面和api接口断开表与表层面的关联,另辟蹊径从其他角度找到方式进行关联。这里我们主要采取了shiro的自定义注解的方案。本篇文章主要解决以下的...

    YuboonaZhang 评论0 收藏0
  • “乐高式松耦合”架构实战

    摘要:二乐高式松耦合架构落地快速实现需求与需求实现越来越慢的矛盾如何解决最终白山的产品架构聚焦在解耦上,方便平台快速迭代,减少系统间依赖程度,打通无关联项目,为运营互动提供高效支持,确保服务质量。 作者:王康 白山联合创始人兼产品副总裁。 王康先生主要负责产品的完善与升级、产品开发流程把控及进度协调、产品设计改进及定期优化、产品全生命周期管理等工作。他带领团队实现白山首款产品CDN-X的多项...

    xiaochao 评论0 收藏0
  • “乐高式松耦合”架构实战

    摘要:二乐高式松耦合架构落地快速实现需求与需求实现越来越慢的矛盾如何解决最终白山的产品架构聚焦在解耦上,方便平台快速迭代,减少系统间依赖程度,打通无关联项目,为运营互动提供高效支持,确保服务质量。 作者:王康 白山联合创始人兼产品副总裁。 王康先生主要负责产品的完善与升级、产品开发流程把控及进度协调、产品设计改进及定期优化、产品全生命周期管理等工作。他带领团队实现白山首款产品CDN-X的多项...

    Pikachu 评论0 收藏0
  • App后台api开发前的准备

    摘要:负责从拉取数据源,把数据源分词,建立索引搜索模块工作流程如下模块从中拉取数据模块用经过中文分词后的数据建立索引客户端向模块发起搜索请求模块查找索引中的数据模块得到索引中符合要求的数据的等数据把数据返回给客户端 (整理自《App后台开发运维和架构实践》 作者:曾健生) 一、从业务逻辑中提炼API接口 此过程可分为六个阶段: 业务逻辑思维导图 功能——业务逻辑思维导图 基本功能模块关系 ...

    yzzz 评论0 收藏0

发表评论

0条评论

ygyooo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<