位置: 编程技术 - 正文

基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架(nodejs cgi)

编辑:rootadmin

推荐整理分享基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架(nodejs cgi),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:基于nodejs的前后端分离,nodejs在前端中的作用,nodejs怎么写后端,nodejs前后端数据交互,nodejs怎么写后端,基于nodejs的前后端框架,基于nodejs的前后端框架,nodejs前后端数据交互,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

使用Node做前后端分离的开发模式带来了一些性能及开发流程上的优势, 但同时也面临不少挑战。在淘宝复杂的业务及技术架构下,后端必须依赖Java搭建基础架构,同时提供相关业务接口供前端使用。Node在整个环境中最重要的工作之一就是代理这些业务接口,以方便前端(Node端和浏览器端)整合数据做页面渲染。如何做好代理工作,使得前后端开发分离之后,仍然可以在流程上无缝衔接,是我们需要考虑的问题。本文将就该问题做相关探讨,并提出解决方案。

由于后端提供的接口方式可能多种多样,同时开发人员在编写Node端代码访问这些接口的方式也有可能多种多样。如果我们在接口访问方式及使用上不做统一架构处理,则会带来以下一些问题:

1. 每一个开发人员使用各自的代码风格编写接口访问代码,造成工程目录及编码风格混乱,维护相对困难。2. 每一个开发人员编写自己的mock数据方式,开发完毕之后,需要手工修改代码移除mock。3. 每一个开发人员为了实现接口的不同环境切换(日常,预发,线上),可能各自维护了一些配置文件。4. 数据接口调用方式无法被各个业务model非常方便地复用。5. 对于数据接口的描述约定散落在代码的各个角落,有可能跟后端人员约定的接口文档不一致。6. 整个项目分离开发之后,对于接口的联调或者测试回归成本依然很高,需要涉及到每一个接口提供者和使用者。于是我们希望有这样一个框架,通过该框架提供的机制去描述工程项目中依赖的所有外部接口,对他们进行统一管理,同时提供灵活的接口建模及调用方式,并且提供便捷的线上环境和生产环境切换方法,使前后端开发无缝结合。ModelProxy就是满足这样要求的轻量级框架,它是Midway Framework 核心构件之一,也可以单独使用。使用ModelProxy可以带来如下优点:

1. 不同的开发者对于接口访问代码编写方式统一,含义清晰,降低维护难度。2. 框架内部采用工厂+单例模式,实现接口一次配置多次复用。并且开发者可以随意定制组装自己的业务Model(依赖注入)。3. 可以非常方便地实现线上,日常,预发环境的切换。4. 内置river-mock和mockjs等mock引擎,提供mock数据非常方便。5. 使用接口配置文件,对接口的依赖描述做统一的管理,避免散落在各个代码之中。6. 支持浏览器端共享Model,浏览器端可以使用它做前端数据渲染。整个代理过程对浏览器透明。7. 接口配置文件本身是结构化的描述文档,可以使用river工具集合,自动生成文档。也可使用它做相关自动化接口测试,使整个开发过程形成一个闭环。

ModelProxy工作原理图及相关开发过程图览

在上图中,开发者首先需要将工程项目中所有依赖的后端接口描述,按照指定的json格式,写入interface.json配置文件。必要时,需要对每个接口编写一个规则文件,也即图中interface rules部分。该规则文件用于在开发阶段mock数据或者在联调阶段使用River工具集去验证接口。规则文件的内容取决于采用哪一种mock引擎(比如 mockjs, river-mock 等等)。配置完成之后,即可在代码中按照自己的需求创建自己的业务model。

下面是一个简单的例子:

【例一】

第一步 在工程目录中创建接口配置文件interface.json, 并在其中添加主搜接口json定义

第二步 在代码中创建并使用model

基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架(nodejs cgi)

ModelProxy的功能丰富性在于它支持各种形式的profile以创建需要业务model:

使用接口ID创建>生成的对象会取ID最后'.'号后面的单词作为方法名

使用键值JSON对象>自定义方法名: 接口ID

使用数组形式>取最后 . 号后面的单词作为方法名下例中生成的方法调用名依次为: Cart_getItem, getItem, suggest, getName

前缀形式>所有满足前缀的接口ID会被引入对象,并取其后半部分作为方法名

同时,使用这些Model,你可以很轻易地实现合并请求或者依赖请求,并做相关模板渲染

【例二】 合并请求

【例三】 依赖请求

此外ModelProxy不仅在Node端可以使用,也可以在浏览器端使用。只需要在页面中引入官方包提供的modelproxy-client.js即可。【例四】浏览器端使用ModelProxy

同时,ModelProxy可以配合Midway另一核心组件Midway-XTPL一起使用,实现数据和模板以及相关渲染过程在浏览器端和服务器端的全共享。关于ModelProxy的详细教程及文档请移步 是阿里集团研发的前后端统一接口规范及相关工具集合的统称

基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案 前言在前后端分离的开发模式中,从开发的角色和职能上来讲,一个最明显的变化就是:以往传统中,只负责浏览器环境中开发的前端同学,需要涉猎

基于NodeJS的前后端分离的思考与实践(五)多终端适配 前言近年来各站点基于Web的多终端适配进行得如火如荼,行业间也发展出依赖各种技术的解决方案。有如基于浏览器原生CSS3MediaQuery的响应式设计、基

基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践 淘宝网线上应用的传统软件栈结构为Nginx+Velocity+Java,即:在这个体系中,Nginx将请求转发给Java应用,后者处理完事务,再将数据用Velocity模板渲染成最

标签: nodejs cgi

本文链接地址:https://www.jiuchutong.com/biancheng/374298.html 转载请保留说明!

上一篇:基于NodeJS的前后端分离的思考与实践(二)模版探索(基于nodejs的项目)

下一篇:基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案(基于nodejs的项目)

  • 关税及贸易总协定成立时间
  • 涉税专业服务是做什么的
  • 出口商品认证
  • 小规模免税收入账务处理
  • 小规模纳税人应交增值税明细科目
  • 从价计征房产税怎么算 原值和出租房原值
  • 所得税忘了计提如何做会计分录还有结转
  • 个体工商户生产经营所得怎么申报
  • 劳务派遣人员工作单位怎么写
  • 计提代扣代缴个人缴纳的社会保险费分录
  • 应预缴的增值税
  • 工程成本控制方法
  • 增值税发票抵扣进项税什么意思
  • 子公司给母公司开票
  • 对子公司进行增资
  • 税号里面有字母吗
  • 营改增前取得的不动产出售的计税方法
  • 无人机开票税收编码是多少
  • 水资源税计入会计科目
  • 公司办事处人员配置标准最新
  • 结转主营业务成本是含税还是不含税
  • 个税申报时个人怎么填
  • 减资弥补亏损是什么行为
  • 企业应收是什么意思
  • windows10专业版是哪个版本
  • 现金日记账需要本月合计吗
  • 固定资产清理会发生什么费用
  • 商品房买卖合同备案查询
  • win10为什么毛病这么多
  • 购买土地前期测量费怎么入账
  • 销售方收到购买方的红字信息表
  • 什么叫股权溢价之谜?
  • 商品流通企业的经营过程分为
  • 其它收益和递延收益
  • 企业汇算清缴发现之前收入记多了可以调整吗
  • php解析原理
  • Python怎么把数据倒着输出
  • 国税代开专票缴纳城建税分录
  • python字典keys方法 顺序
  • 研发费用税前加计扣除金额怎么算
  • 增值税多交了五万怎么办
  • 机票行程单可以在到达地打印吗
  • 飞书slogan
  • 我们买得起一辆新车吗?英文
  • 股权转让受让方委托书
  • 工程物资进项税额转出
  • 报销凭证粘贴单怎么用
  • 血液制品增值税税率
  • 制造费用分配后总账月末余额在哪方?
  • 初识PostgreSQL存储过程
  • 以前年度损益影响当期损益吗
  • 企业合并会计处理案例
  • 测试费几分钱入账
  • 母公司划拨土地给全资子公司需要上税吗?
  • 发票的抵扣期限是多少天
  • 工伤 保险赔付
  • 建筑企业工程施工科目怎么结转
  • 免缴教育费附加什么意思
  • MySQL5.7 windows二进制安装教程
  • win7 win8.1双系统安装教程
  • mac怎么卸载第三方软件
  • centos启动有三个选项
  • win7 64位旗舰版电脑鼠标如何才能设置成左手操作?设置鼠标为左手操作的方法
  • win7系统弹出好多停止运行程序
  • [置顶]JM259194
  • bat ftp上传文件
  • Immutable 在 JavaScript 中的应用
  • linux里面vim
  • 搭建nodejs
  • jquery删除当前元素
  • pulls toward
  • Unity-DF 2048界面
  • 网页的子页面
  • 云南增值税普通发票怎么开
  • 别人给公司开的普票,怎么查询
  • 土地占用税是什么意思
  • 汽车排量与购置税的关系
  • t+怎么取消记账凭证
  • 沈阳铁西区房产中介电话
  • 国税发票什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设